码迷,mamicode.com
首页 > 编程语言 > 详细

《汇编语言》实验四课程

时间:2018-12-14 00:57:26      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:span   col   bsp   命令   完整   可见   实现   填充   info   

(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命令逐步调试

技术分享图片

 技术分享图片

复制成功

《汇编语言》实验四课程

标签:span   col   bsp   命令   完整   可见   实现   填充   info   

原文地址:https://www.cnblogs.com/zwHou/p/10117078.html

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