zoukankan      html  css  js  c++  java
  • 实验 4 [bx]和loop的使用

    实验内容

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

    实验代码:

    assume cs:code

    code segment

      mov ax,0b800h(不能以字母开头,前面置零)

      mov ds,ax

      mov cx,16

      mov bx,07b8h

      mov ax,0403h

    s:    mov [bx],al

      inc bx

      mov [bx],ah

      inc bx

      loop s

      mov ax,4c00h

      int 21h

    code ends

    end

    接下来运行程序

    编译无错误

     

    如图所示,出现16个爱心符号

    将源代码程序中字数据0403H→修改为0441H,运行截图、

    出现16个A

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

    实验代码:

    assume cs:code

    code segment

      mov ax,0020h

      mov ds,ax

      mov bx,0

      mov cx,64

      mov al,0

    s: mov [bx],al

      inc bx

      add al,1

      mov ax,4c00h

      int 21h

    code ends

    end

    编译无误

     在debug环境下进行调试

    t命令是一步一步执行下去。

    p命令,在循环部分直接结束。

    g命令直接执行完,结果如上

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

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

    assume cs:code

    code segment

      mov ax,__

      mov ds,ax

      mov ax,0020h

      mov es,ax

      mov bx,0

      mov cx,__

    s: mov al,[bx]

      mov es:[bx],al

      inc bx

      loop s

      mov ax,4c00h

      int 21h

    code ends

    end

    将当前代码段复制到目标空间,复制的测试代码段需要通过在debug中调试得出,用r命令可以看出cx的值,即程序总代码的大小,以字节为单位

    现在cx中填4,用r命令观察需要复制的字节数和不需要复制的字节数

    可以看出总共需要1ch个字节,无用代码一共需要5h个字节,所以复制的代码为17h个字节,即23

    更改源代码cx为23

     

    复制成功

    实验总结

    通过这次实验,更加清晰的掌握了将字或者字节写入一段地址空间的操作方法,相关爱心符号的代码在实验三中有所涉及,学会了复制代码段的相关操作过程。

     

      

       

  • 相关阅读:
    Java实现 LeetCode 50 Pow(x,n)
    Java实现 LeetCode 50 Pow(x,n)
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 47 全排列 II(二)
    Java实现 LeetCode 47 全排列 II(二)
  • 原文地址:https://www.cnblogs.com/-Cold/p/9978540.html
Copyright © 2011-2022 走看看