码迷,mamicode.com
首页 > 其他好文 > 详细

实验4

时间:2018-11-16 21:02:09      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:不同   segment   16px   实验   单位   指令   没有   地址   使用   

 

 

1. 综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个
字单元重复填充字数据 0403H。

这题就是简单的循环操作,将固定的数据填入,不过这里需要注意的是题目中为16字而不是字节,需要分高位和低位分开写入,因为ds:[bx]是以字节为单位的。

汇编代码:

assume cs:code
code segment
        mov ax, 0b800h
        mov ds, ax

        mov ax, 0403h

        mov bx, 07b8h
        mov cx, 16                  

s:      mov ds:[bx], al
        inc bx
        mov ds:[bx], ah
        inc bx
        loop s

        mov ax, 4c00h 
        int 21h

code ends

end

  技术分享图片

将其中的0403h改为0441h后结果如下:

技术分享图片

2. 综合使用 loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23F 依次传送数据
0~63(3FH)。
(1)必做:综合使用 loop, [bx], mov 实现

这题和第一题十分的相似,区别在于原来是在一连续区域写入同一数据,现在变为每一次写入不同的数据。这里我直接用bx同时作为地址和数据的变量,也可以分开写,再引入一个变量。

代码如下:

assume cs:code
code segment
        mov ax, 20h
        mov ds, ax

        mov bx, 0
        mov cx, 64

s:      mov [bx], bx
        inc bx
        loop s

        mov ax, 4c00h
        int 21h

code ends
end

  技术分享图片

技术分享图片

(2)选做*:利用栈的特性,综合使用 loop,push 实现(限定仅使用 8086 中已学过
指令实现)

这题很简单,就是push后直接pop,因为栈是FILO。

代码如下:

assume cs:code
code segment
        mov ax, 20h
        mov ds, ax

        mov bx, 0
        mov cx, 64

s:      push bx
        pop ds:[bx]
        inc bx
        loop s

        mov ax, 4c00h
        int 21h


code ends
end

  技术分享图片

用g命令一次执行完成后,用d命令进行查看,可以发现0:200开始的值改变成我们写入的0~63了。

3. 教材实验 4(3)(P121)

这题一开始我一直错误,最后一句没有复制成功,后来发现原来是我循环的次数搞错了,将次数数成了要复制的最后一句的上一句,因此每次都会少一句,这里cx设为几就循环几次,另外代码的开始地址可以通过

cs或者code给出,而这里代码的长度我是通过先填一个数,然后调试看它的长度,不过这里要看清楚,不要像我一样数错了。

代码如下:

assume cs:code

code segment

        mov ax, code
        mov ds, ax

        mov ax, 0020h
        mov es, ax

        mov bx, 0
        mov cx, 18h
s:      mov al, [bx]
        mov es:[bx], al
        inc bx
        loop s

        mov ax, 4c00h
        int 21h

code ends

end

  技术分享图片

本次实验相对来说其实还是很简单的,只要概念清晰,一些操作命令熟悉,不会有太大的问题。

 

实验4

标签:不同   segment   16px   实验   单位   指令   没有   地址   使用   

原文地址:https://www.cnblogs.com/kerman/p/9971057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!