追寻 发表于 2012-10-27 10:39:32

汇编学习中的小问题

mov al,   ;al=0
读取10000h单元的内容,程序如下:
movbx,1000h
mov ds,bx
mov al,;这里表示偏移地址为0的内容
这两个地方我就有疑惑了,谢谢帮忙解答!

s0512 发表于 2012-10-27 11:16:28

movbx,1000h    ;BX;=1000H
mov ds,bx          ;DS:=1000H
mov al,;      ;AL;= DS: 就是1000:0段地址*16加偏移就是10000h{:1_1:}

追寻 发表于 2012-10-27 16:07:11

如果要读取内存单元的内容,程序是这样的啊:
mov ax,1000h
mov ds, ax
movbx,0
mov al,;或者mov al,ds:0
这个跟mov al,的区别是什么

yz900525 发表于 2012-10-27 22:36:21

没有mov al,这种表达方式吧,而且BX放到AL是放不进去的,只能保存低8位
另外mov al,ds:0和mov al,效果是一样的,对内存里的数据进行操作的时候那个数字一定要加上中括号“[]”,否则就是单纯的把数据存放到寄存器中,而不是将内存中的数据转移到寄存器中了

s0512 发表于 2012-10-28 11:18:17

追寻 发表于 2012-10-27 16:07 static/image/common/back.gif
如果要读取内存单元的内容,程序是这样的啊:
mov ax,1000h
mov ds, ax


mov al,;或者mov al,ds:0
这个跟mov al,的区别是什么
===========================
BX寄存器的值是0,在这里 mov al,等于 mov al,,结果一样。
再就是mov sl,ds:0 这种格式是错误的!

补充内容 (2012-10-28 11:19):
打错字了,是mov al,ds:0   把a打成s了。。。sorry!!
页: [1]
查看完整版本: 汇编学习中的小问题