• 实验报告:实验四


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

    代码如下:

     1 assume cs:code
     2 code segment
     3    mov ax,0b800h
     4    mov ds,ax
     5    mov bx,07b8h
     6    mov cx,10h
     7 
     8 s: mov [bx],0403h
     9    add bx,2
    10    loop s
    11   
    12    mov ax,4c00h
    13    int 21h
    14 code ends
    15 end

    需注意的是如果地址以字母开头的话需要在前面加0。

    并且是重复填充字数据,所以每次bx值需要+2.

    然后汇编→连接→运行→调试。如下图

    结果如下图

    然后将源代码程序中字数据 0403H→修改为 0441H,结果如下图。(16个A)

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

    代码如下:

     1 assume cs:code
     2 code segment
     3     mov ax,20h
     4     mov ds,ax
     5     mov bx,0
     6     mov cx,40h
     7     mov al,0
     8 
     9 s:  mov [bx],al
    10     inc al
    11     inc bx
    12     loop s
    13   
    14     mov ax,4c00h
    15     int 21h
    16 code ends
    17 end

    然后汇编→连接→运行→调试。如下图

    分部调试

    查看结果对应地址确实改为了0-63。

     3.下面的程序功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果:

    最终代码如下:

     1 assume cs:code
     2 code segment
     3    mov ax,cs
     4    mov ds,ax
     5    mov ax,0020h
     6    mov es,ax
     7    mov bx,0
     8    mov cx,17h
     9 s: mov al,[bx]
    10    mov es:[bx],al
    11    inc bx
    12    loop s
    13    mov ax,4c00h
    14    int 21h
    15 code ends
    16 end

    其中,想要复制程序代码,即从cs:ip开始(ip默认为bx=0),即把cs赋值给ax。

    循环次数cx一开始并不确定,但是可以在运行的程序反汇编中看出所需复制的代码的长度。则随意给cx赋值,查看反汇编代码长度

    如下图

    可以看出程序从0000-0016为所需复制的代码,长度为23个字节。

    即赋值cs=17h。

    然后重新编译连接运行调试,结果如下图:

    然后用g命令直接调试,再用d命令查看指定地址中的内存数据是否为反汇编中的代码对应的数据:

    结果相符。

    总结和感想:

    1.熟悉了汇编中loop语句的循环使用。

    2.对段前缀【bx】的语法和用法有所理解,同时对g命令一步到位的调试很有好感。

  • 相关阅读:
    AppServ设置虚拟主机 及域名连接
    PHPCMS v9 实现首页,列表页,内容页调用点击量方法
    phpcms v9 后台首页 去掉团队信息等版权
    phpcms v9 在当前栏目下获取父栏目与当前栏目的名称与连接
    不是技术牛人,如何拿到国内IT巨头的Offer
    解决phpcms V9缩略图模糊的方法
    apache、nginx、iis 全球分布
    获取屏幕宽度、浏览器宽度、网页高度,宽度信息
    21个适合扁平化设计的创意超链接效果
    javascript模拟鼠标双击事件
  • 原文地址:https://www.cnblogs.com/xue123/p/9972249.html
Copyright © 2020-2023  润新知