汇编的几个问题!
DSEG SEGMENT
N DB 1
DSEG ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DSEG
START: LEA BX, N
;MOV CX, N ;此处写为CX 会提示说16位寄存器和8位地址不匹配,那是不是说N是8位地址,CX为16位寄存器,但上面的LEA不是也是这样操作的吗?
MOV CL, N ;当改为此行代码就对了,但BX,CL的值有什么区别啊?
CODE ENDS
END START
;;初学者,希望大家帮帮忙!
[解决办法]
LEA是取N的地址,与变量类型没关系,在32位平台下,所有变量的地址都是32位的(即该变量在内存中的位置,如果是64位平台,地址就都是64位的),MOV是复制,N是8位变量,因此目的寄存器不是8位时会有警告信息。
[解决办法]