关于offset指令的疑问
本帖最后由 takasi 于 2022-3-4 10:03 编辑已知程序的数据段为:
DATA SEGMENT
A DB ‘$’,10H
B DB ‘COMPUTER’
C DW 1234H,0FFH
D DB 5DUP(?)
E DD1200459AH
DATA ENDS
求下列程序段执行后的结果是什么。
MOV AL,A
MOV DX,C
XCHG DL,A
MOV BX,OFFSET B
MOV CX,3
LEA BX,D
LDS SI,E
LES DI,E
解:
AL=24H
DX=1234H
DL=24H,A=34H
BX=2
CX=5550H
BX=000EH
DS=1200H,SI=459AH
ES=1200H,DI=459AH
可以帮忙解释一下BX=2和BX=000EH是怎么得来的吗?
发完整代码 人造人 发表于 2022-3-3 22:19
发完整代码
已知程序的数据段为:
DATA SEGMENT
A DB ‘$’,10H
B DB ‘COMPUTER’
C DW 1234H,0FFH
D DB 5DUP(?)
E DD1200459AH
DATA ENDS
求下列程序段执行后的结果是什么。
MOV AL,A
MOV DX,C
XCHG DL,A
MOV BX,OFFSET B
MOV CX,3
LEA BX,D
LDS SI,E
LES DI,E
解:
AL=24H
DX=1234H
DL=24H,A=34H
BX=2
CX=5550H
BX=000EH
DS=1200H,SI=459AH
ES=1200H,DI=459AH 已解决 0002h是B在data段中偏移,A中两个byte,故而B的offset是2,同理000e是D的偏移
页:
[1]