AHU 汇编 实验二

一、实验名称:实验二 不同寻址方式的灵活运用

二、实验内容:定义数组a[6],用多种寻址方式访问对应元素,实现(a[0]+a[1])*(a[2]-a[3])/a[4],将结果保存在内存a[5]中,用debug查询结果。

  • 实验过程:

源代码:

data segment

  a db 10,14,5,4,6,9

data ends

code segment

  assume cs:code,ds:data

start:

  mov ax,data

  mov ds,ax

  mov al,a    ;NO.1   //直接寻址

  mov bl,a+1

  mov cl,bl   ;NO.2   //寄存器寻址

  add al,cl

  mov si,offset a+2

  mov bl,[si] ;NO.3   //寄存器间接寻址

  mov cl,[si+1];NO.4   //寄存器相对寻址

  sub bl,cl

  mul bl

  mov bl,2

  mov cl,[si+bx];NO.5  //基址变址寻址

  DIV cl

  mov [si+bx+1],al;NO.6  //相对基址变址寻址

  mov ah,4ch

  int 21h

code ends

end start

运行截图:

  • 实验小结:

本次实验我们继续熟悉,掌握不同方式的寻址方法,分别运用,直接寻址,寄存器寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址共6种方法进行4则运算,按照题目要求完成实验。首先我们利用直接寻址的方式将数值名a(即内存地址)解码,获得数组的第一个元素值,将其放进al寄存器中,然后将第2个元素的值放进bl中,再用寄存器寻址的方法把元素值放进cl中,然后取出第三个元素的地址放进si寄存器中,然后运用寄存器间接寻址的方式解码元素值放进bl寄存器中,然后再运用寄存器相对寻址的方式得到第4个元素,放入cl寄存器中,再进行减法运算和乘法运算,然后用基址变址寻址方式得到第5个元素,再进行相除运算。最后用相对基址变址的寻址方式将结果放进al寄存器中。

相关推荐

  1. 【AMBA】漫谈AHB总线(~四)

    2024-03-13 05:26:05       24 阅读
  2. execution unit的概念与实现----AGU

    2024-03-13 05:26:05       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-13 05:26:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-13 05:26:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-13 05:26:05       87 阅读
  4. Python语言-面向对象

    2024-03-13 05:26:05       96 阅读

热门阅读

  1. docker直接下载太慢,更换国内靠谱镜像源

    2024-03-13 05:26:05       38 阅读
  2. vue双向绑定/小程序双向绑定?

    2024-03-13 05:26:05       44 阅读
  3. 从SQL质量管理体系来看SQL审核(1)

    2024-03-13 05:26:05       38 阅读
  4. 面试经典-4-LRU 缓存

    2024-03-13 05:26:05       40 阅读
  5. 使用SpringBoot实现定时任务

    2024-03-13 05:26:05       44 阅读
  6. 子查询的特殊用途

    2024-03-13 05:26:05       41 阅读
  7. 双指针算法———C++

    2024-03-13 05:26:05       45 阅读
  8. docker搭建upload-labs

    2024-03-13 05:26:05       44 阅读
  9. 大数据开发(HBase面试真题-卷二)

    2024-03-13 05:26:05       43 阅读