知识点
- 表示内存单元:[0]或者[bx],此时,段地址默认在ds中,偏移地址在给定的idata中或者bx中。
- 描述性符号():表示一个寄存器或者一个内存单元中的内容。比如(ax),(20000H),((ds)*16+(bx))。
- loop指令:实现循环功能,cx中存放循环次数。执行时,第一步,cx=cx-1,第二步,判断cx中的值,不为0则转至标号处执行程序,如果为0则向下执行。
- 源程序中,数据不能以字母开头,前面需要加0。
- debug的g命令和p命令:g可以跳至指定位置,p可以将循环一次执行完。
- 段前缀:用于显式地指明内存单元的段地址的 “ds:”, “cs:”, “ss:”, “es:”。
- 安全空间:在一般的PC机中,DOS方式下,DOS和其他合法的程序一般都不会使用0:200~0:2ff的256个字节的空间。
实验4 [bx]和loop的使用
代码
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bl,0
mov cx,64
s:mov [bx],bl
inc bl
loop s
mov ax,4c00h
int 21h
code ends
end