急!!!!汇编基础问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 13:29:46
以下程序
MOV SI,210
MOV DI,0214
MOV CX,4
MOV AL,[SI]
AND AL,0F
MOV [DI],AL(这句的偏移地址是109)
INC SI
INC DI
LOOP 1O9
HLT
执行MOV SI,210后 SI里放的应该是0210
可是在执行MOV AL,[SI]时程序却显示AX=0000望各位高手指教

MOV AX,SI与MOV AX,[SI]是有区别的,前面是将寄存器SI的值传入寄存器AX,后面是将内存地址DS:SI的值传入AX,去找找寻址方式的知识看下

楼主理解错了

执行MOV SI,210后
si存放0210
MOV AL,[SI] 是存储器寻址,是取存储器一个字节送给Al

以DS中内容为数据段地址,SI为偏移地址
求得物理地址=DS*16+SI ,以物理地址寻址取存储器中字节内容
赋值给AL ,按题意AX=0000,存储器取的数是0
MOV AL,[SI]

MOV AX,SI(寄存器寻址) 是不同的