汇编语言(第三版)王爽著(实验四)[bx]和loop的使用

一、实验目的

      掌握在Debug中使用命令进行汇编指令编程及执行

二、实验设备与环境

计算机

DOS操作系统或 Windows 操作系统

MASM.EXE, LINK.EXE, DEBUG.COM 或宏汇编集成环境

三、实验内容、程序清单及运行结果

1. 编程,向内存0:200-0:23f依次传送数据0-63(3fh),程序中只能使用9条指令,包括mov ax,4c00h和int 21h(1,2题一起)

assume cs:codes

 

codes segment

 

         mov ax,0020h

         mov ds,ax

        

         mov cx,64

 

         mov bx,0

 

     s: mov ds:[bx],bl

         inc bx

         loop s

 

         mov ax,4c00h

         int 21h

 

codes ends

 

end

 

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第1张图片 汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第2张图片

设置ds、cx

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第3张图片

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第4张图片

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第5张图片

3.下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序

assume cs:code

 

code segment

 

         mov ax,cs

         mov ds,ax

         mov ax,0020h

         mov es,ax

         mov bx,0

         mov cx,17h

 

     s:    mov al,[bx]

         mov es:[bx],al

         inc bx

         loop s

 

         mov ax,4c00h

         int 21h

 

code ends

 

end

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第6张图片

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第7张图片

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第8张图片

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第9张图片

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用_第10张图片

 

  1. 复制的是什么?从哪里到哪里?

答:复制的是代码段开始mov ax,cx到mov ax,4c00h之前的指令的机器码,从上图可以看出

  1. 复制的是什么?有多少个字节?你如何知道要复制的字节的数量?

答:17h=23个字节,先预估一个值,然后实验,通过反编译即可得到正确的机器码的字节数

 

四、实验结论、实验体会

 

第一题和第二题:

63小于255所以需要一个字节来存储,既可以用al来进行中转,ds的设置要考虑到偏移地址的增加和减少,以方便偏移地址的自增和自减

 

第三题:

因为code段是首先定义的所以cs:ip指向的程序首地址恰好是code段的首地址,所以可以把ds的值设置成和cs一样。17h的得出是通过先估算然后再使用多次得到的,

 

这次试验告诉我,要得到事实真相往往要通过一系列的实验事实来推理

其它实验:

汇编语言(第三版)王爽著(实验一)查看CPU和内存

汇编语言(第三版)王爽著(实验二)用机器指令和汇编指令编程

汇编语言(第三版)王爽著(实验三)编程、编译、连接、跟踪

汇编语言(第三版)王爽著(实验四)[bx]和loop的使用

汇编语言(第三版)王爽著(实验五)编写、调试具有多个段的程序

汇编语言(第三版)王爽著(实验六)实践课程中的程序

汇编语言(第三版)王爽著(实验七)寻址方式在结构化数据访问中的应用

汇编语言(第三版)王爽著(实验八)分析一个奇怪的程序

汇编语言(第三版)王爽著(实验九)根据材料编程

汇编语言(第三版)王爽著(实验十)编写子程序

汇编语言(第三版)王爽著(实验十一)编写子程序

汇编语言(第三版)王爽著(实验十二)编写0号中断的处理程序

DOSBox+MASM搭建汇编环境

你可能感兴趣的:(汇编)