si与di 寄存器。是否可以代替 bx??
例子:code segment
start:
mov dh , 2
mov dl , 5
mov cl , 2
mov ax , data
mov ds , ax
mov si , 0【这里指ds:0。为什么是si。不是bx】
call show_str
........
例如:
mov ax,date
mov ds,ax
mov si,0
的意思是:ds:内存单元
。为什么不声明bx???而是用si??
如果是:
mov ax, date
mov ds,ax
mov si,0
mov bx,0
是调用 si为偏移地址。还是bx?????
如果si做偏移的时候。bx做什么?
什么时候调用si,什么时候调用bx? 本帖最后由 china0008 于 2011-3-10 10:13 编辑
sidi是纯16位寄存器。 不能分为高低8位。当作为16位寄存器使用的时候跟bx一样。都是通用寄存器。 si和di在 串送指令中 是神器。方便的很啊。
另外你贴完整源码噻……。 高手啊。谢谢你!!!!:loveliness:
爱你一万年!:lol 本帖最后由 790496690 于 2011-4-12 10:46 编辑
我也是猜想啊:从计算机的角度看,它会以MOV SI,0作为偏移的地址。因为我们的汇编的指令没有明确的指出到底是SI或者是BX等,谁是作为偏移地址,都是最开始的汇编鼻祖,凭自己的习惯定的。但是要是遇到了楼主提出的那种情况的话,因该是按照顺序来的,最前面的那个是偏移地址的寄存器。
那位大哥来给个决断啊!!!这也是我的一个理解吧!!不知道对不 学习一下。。。
页:
[1]