|
发表于 2022-5-24 17:11:29
|
显示全部楼层
本帖最后由 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 寄存器的对应关系,观察被标注那三条指令形式的变化。 |
|