[bx]和loop的使用
一.实验目的
- 学会[bx]和loop的使用。
- 熟练使用debug调试汇编程序的方法。
二.实验内容或主要代码
-
1.编程,向内存0:200-0:23F依次传送数据0-63(3FH)。
assume cs:code
code segment
mov ax,0
mov ds,ax
mov al,0
mov bx,200h
mov cx,64
s:mov [bx],al
inc al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end -
2.编程,向内存0:200-0:23F依次传送0-63(3FH),程序中只能使用9条指令,9条指令中包括“mov ax,4c00h”和“int 21h”。
assume cs:code
code segment
mov ax,200h
mov ds,ax
mov bx,0
mov cx,64
s:mov [bx],bl
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end -
3.下面的程序的功能是将“mov ax,4c00”之间的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code code segment
(1)复制的是什么?从哪里到哪里?
复制的为程序段的段地址,从cs到ax。
(2)复制的是什么?有多少个字节?你如何知道要复制的字节的数量?
复制的为内存中的字节,23个字节,使用r命令查看cx寄存器中的初值,使用u命令可知“mov ax,4c00h”和“int 21h”这两条指令的长度,相减即为需复制的指令的长度。
三.实验结果或截图
四.实验分析或体会
通过此次实验我更熟悉了汇编程序的编写,也更加熟悉了汇编程序的编译、连接、执行等操作。在实验中使用loop指令,可以减少程序的冗杂,使程序更加简洁刻度,此次实验花费了我大量时间,原因是对汇编程序的结构未完全掌握,通过此次实验,我认识到了自己的不足,但愿通过未来的学习,可以更好的提高自己。