本帖最后由 jackz007 于 2022-5-24 17:18 编辑
编译、调试这个代码,你就可以体会到段及 assume 伪指令的意义和作用。assume cs:code , ss:a , es:b , ds:c
a segment stack para 'stack'
ta db 1,2,3,4,5,6,7,8
dw 400h dup(00)
a ends
b segment para public 'data'
tb db 1,2,3,4,5,6,7,8
b ends
c segment para public 'data'
tc db 0,0,0,0,0,0,0,0
c ends
code segment para public 'code'
start:
mov ax,b
mov es,ax
mov ax,c
mov ds,ax
xor bx,bx
mov cx,8
s1: mov al , byte ptr ta[bx] ; 在debug 中重点关注该指令的形式
add al , byte ptr tb[bx] ; 在debug 中重点关注该指令的形式
mov byte ptr tc[bx],al ; 在debug 中重点关注该指令的形式
inc bx
loop s1
mov ax,4c00h
int 21h
code ends
end start
你可以试试调整 assume 伪指令中,a、b、c 段与 ss、ds、es 寄存器的对应关系,观察被标注那三条指令形式的变化。 |