实验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

 

 完整代码为

 

 

posted @ 2018-11-22 22:32  儿茶  阅读(134)  评论(2编辑  收藏  举报