实验4 [bx]和loop的使用
一、实验内容
实验任务(1)
综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个
字单元重复填充字数据 0403H。
编译,连接
运行结果截图
将源代码中的字数据0403h修改为0441h,再次运行
实验任务(2)
综合使用 loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23F 依次传送数据
0~63(3FH)。
必做:综合使用 loop, [bx], mov 实现。汇编、链接无误后,灵活使用 debug 的 t 命令、g 命令、p 命令调试,用 d 命令
查看 0:200~0:23F,确认是否将 0~63 传送至此段内存区域。
实验任务(3)
下面的程序的功能是将“mov ax,4c00h”之前的指令复制到0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code
code segment
mov ax,______
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,______
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
汇编连接后,灵活使用 debug 的 t 命令、g 命令、p 命令调试,用 d 命令查看 0:200
之后的若干字节,观察是否将 mov ax, 4c00h 之前的指令复制到指定内存,这部分要求有截
图,并以文字方式说明空白处填写依据。
第一个空填cs,表示当前指令的段地址;
第二个空为循环次数,先随意填入一个数,
u命令进行反汇编,观察到总共需要1ch个字节,而最后两行代码一共需要5h个字节
所以需要复制的代码为17h个字节,第二空填入17h
完整代码为