《汇编语言》实验四课程
Posted zwhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《汇编语言》实验四课程相关的知识,希望对你有一定的参考价值。
(1) 综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据 0403H。
代码:
assume cs:code
code segment
mov ax,0b800h
mov ds,ax
mov bx,07b8h
mov cx,16
s: mov [bx],0403h
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end
截图:
将源代码程序中字数据 0403H→修改为 0441H,再次运行,截图显示运行结果:
(2)编程:向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令中包括“mov ax,4c00h”和“int 21h”
代码:
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,64
s:mov [bx],bx ;此处直接将bx=0传入0020:0,并通过循环使得bx传入内存
inc bx
loop s
code ends
end
截图:
实验内容三:
下面的程序的功能是将”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
1.将代码段内的指令复制到目的地址当中去,cs是指向程序代码段的地址
2.cx的值是loop循环的次数,而程序段的长度决定了循环写入的次数,所以cx的值为程序段的长度。
用r命令查看一开始cx的值,再用u命令反汇编
可见当程序段结束时,即“mov ax,4c00h”时偏移地址为17,即程序段长度为17,所以cx=17
将cx改为17后,t命令逐步调试
复制成功
以上是关于《汇编语言》实验四课程的主要内容,如果未能解决你的问题,请参考以下文章