微机原理:指令AND AX,X AND Y中的X和Y是两个已赋值的常量

来源:百度知道 编辑:UC知道 时间:2024/06/18 00:24:05
指令AND AX,X AND Y中的X和Y是两个已赋值的常量,问:两个AND操作分别在什么时候进行?功能上有什么区别?

X AND Y 中的 AND 是在编译的时候执行,把X AND Y值计算出来作为源操作数(这里的AND完全可以当作预编译命令了,在生成exe文件后它是不存在的)

AND AX, ... 中的 AND 是在程序运行的时候执行的

比如
X equ 1234h
Y equ 0FF0h
code segment
assume cs:code
start:
AND AX,X AND Y
mov ah,4ch
int 21h
code ends
end start

这个程序编译连接好后用debug反编译可以看到程序第一句已经变成:
AND AX,0230

(和C里面的#define差不多)

完全统一楼上的,没有补充