定义
si与di是8086CPU中和bx功能相近的寄存器,它们不能够分成两个8位寄存器来使用。
既生瑜何生亮
si(source?)与di(destination?)在某些场景下一个可以代表数据源,一个代表目的地,更为语义化也比bx方便,不过代码量可能变多。
问题7.2
用si和di实现将字符串‘welcome to my blog’赋值到它的后面的数据区中。
源程序
assume cs:code,ds:data
data segment
db 'welcome to my blog'
db '..................'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov di,18
mov cx,18
s:mov al,[si]
mov [di],al
inc si
inc di
loop s
mov ax,4c00h
int 21h
code ends
end start
debug执行前内存状态
debug执行结果
不足
上面代码如果每次使用字单元会使循环次数减半,更高效