• AHU 汇编 实验二


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

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

    • 实验过程:

    源代码:

    1. data segment
    2.   a db 10,14,5,4,6,9
    3. data ends
    4. code segment
    5.   assume cs:code,ds:data
    6. start:
    7.   mov ax,data
    8.   mov ds,ax
    9.   mov al,a    ;NO.1   //直接寻址
    10.   mov bl,a+1
    11.   mov cl,bl   ;NO.2   //寄存器寻址
    12.   add al,cl
    13.   mov si,offset a+2
    14.   mov bl,[si] ;NO.3   //寄存器间接寻址
    15.   mov cl,[si+1];NO.4   //寄存器相对寻址
    16.   sub bl,cl
    17.   mul bl
    18.   mov bl,2
    19.   mov cl,[si+bx];NO.5  //基址变址寻址
    20.   DIV cl
    21.   mov [si+bx+1],al;NO.6  //相对基址变址寻址
    22.   mov ah,4ch
    23.   int 21h
    24. code ends
    25. end start

    运行截图:

    • 实验小结:

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

  • 相关阅读:
    Go类型type
    Flume环境搭建
    数据结构--线性表之顺序表
    UI/UX design
    城市建筑空间杂志城市建筑空间杂志社城市建筑空间编辑部2022年第7期目录
    基于java的在线物流管理系统【原创】
    最新 robot framework安装
    【论文精读】Diffusion Transformer(DiT)
    @Async注解的坑
    酸纯化APU系统在阳极氧化酸回收中的应用
  • 原文地址:https://blog.csdn.net/qq_62718684/article/details/136630706