zoukankan      html  css  js  c++  java
  • 汇编语言之实验四

    汇编语言程序设计实验四

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

    edit:

    编译连接:

     运行:出现红心

     

     出错:一开始做实验时,编译连接运行结果是(如下图),和实验要求上不一样啊。

    edit如图:

    我想,ax寄存器里面应该是放着控制颜色符号的,bx是控制在显存地址上的,cx是控制循环语句次数的。

    可是ax寄存器里面存放的值我没有写错啊。。后来从错误显示符号的最后一位是白色菱形,得到提示。

    ax是占一个字,但是bx地址每次只加一,导致后面不断覆盖前面内存单元。最后导致,指定位置显存上存储的值驴头不对马嘴。。

    还是字与字节上出了错

    若将源代码程序中字数据0403H→修改为0441H,再次运行,截图显示运行结果

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

    (1)必做:综合使用loop, [bx], mov实现

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

    (1)edit

    编译连接

    运行测试

     (2)此题参考于   https://www.cnblogs.com/-Anguvia-/p/9975156.html

    不得不服,这奇思妙想。尤其是,让3f3e-0202以实现控制输出结果。

     

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

    assume cs:code   

    code segment   

         mov ax, code ;或mov ax, cs 

         mov ds,ax   

         mov ax,0020h   

         mov es,ax   

         mov bx,0   

         mov cx, 18h   ;或mov cx, 17h    ;或sub cx,5

      s: mov al,[bx]   

         mov es:[bx],al   

         inc bx   

         loop s   

         mov ax,4c00h   

         int 21h   

    code ends   

    end

     根据cx寄存器,可知cx为1cH,因为在载入程序时,cx保存程序的长度,减去5是为减去mov ax,4c00h和int 21h的长度

    所以,001cH-0005H=23 个

    所以 cx 寄存器赋值为 17H。

     

    复制成功

  • 相关阅读:
    数组越界的现象
    找出数组中的最大值
    Django Form和ModelForm组件
    AJAX
    Mysql数据库概述
    Django中的session和cookie及分页设置
    Django-admin组件使用
    Django中间件
    MySQL视图、触发器、事务、存储过程、函数
    机器学习基础算法__python实现(基于numpy等基础库)
  • 原文地址:https://www.cnblogs.com/bowentianxia/p/9985019.html
Copyright © 2011-2022 走看看