实验内容
1. 综合使用loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续16个*字单元*重复填充字数据 0403H。
下面是具体的代码
assume cs:code
code segment
mov ax,0b800h
mov ds,ax
mov ax,0403h
mov bx,07b8h
mov cx,10h
s: mov [bx],ax
inc bx
inc bx
loop s
mov ax,4c00h
int 21h
cod ends
end
清屏后执行.exe文件,得到如下结果
> 将源代码程序中字数据 0403H-> 修改为0441H,再次运行。
可见原来的爱心变成了A
2. 综合使用loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23f 依次传送数据0~63(3FH)。
代码如下
assume cs:code
code segment
mov ax,0
mov ds,ax
mov bx,0200h
mov al,0
mov cx,40h
s: mov [bx],al
inc bx
inc al
loop s
mov ax,4c00h
int 21h
code ends
end
进行编译、链接无误以后,使用debug 观察
**从实验结果可以验证题目所要求
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
进行Debug
**可见,第二个字节也被复制过去了。反汇编查看复制的内容,发现与源代码相同
实验总结与体会
首先这次实验用的博客园自带的 Markdown 作为编辑器,初次使用,而且没有地方预览,所以排版不一定好看、正确,在此说明
这次实验相对来说还是用的前几次的知识,加以应用。对汇编的了解更加深一步了。;
end
--------