zoukankan      html  css  js  c++  java
  • 实验二 汇编命令(伪指令)实验

    一、实验目的

    1)进一步熟悉汇编语言的汇编、连接、运行的全过程。

    2)了解汇编语言的程序结构、掌握动态调试工具DEBUG的使用。

    3)掌握部分伪指令的功能,编程时会使用伪指令。

    4)熟悉汇编语言中数据定义伪指令的书写形式。

    5)掌握DEBUG的使用。

    二、实验要求

    1)仔细阅读教材中有关伪指令部分;

    2)仔细阅读实验教程中DEBUG的使用部分;

    3)用DEBUG中的DE命令检查带符号数据和不带符号数据在内存中的表示方法;

    4)用DEBUG中的D命令观察DBDWDD存储整数数据的格式;

    5)用DEBUGG中的D命令观察DD存储实数的格式。

    三、实验步骤

    1)编写一个汇编程序,使用DWDBDD命令向内存写入数据(如图2-1)。

     

    2-1 使用DWDBDD命令向内存写入数据

    2)使用debug命令观察存储数据的格式。

    ①使用-u命令观察指令所在地址和指令的具体实现。可以观察到指令的初始地址为076A:0000(如图2-2)。

     

    2-2 u命令查看指令地址

    ②使用-d命令查看076A:0000076A:0070的数据内容

     

    2-3 d命令查看数据

    四、实验结果

      我们使用DWDBDD写入相同的4个字(64位)数据,但是通过观察,我们发现它们在内存中的位置并不是我们想的那样按顺序安放。

    076A:0000 23 01 56 04 89 07 11 10 DW

    076A:0008 01 23 04 56 07 89 10 11 DB

    076A:0010 56 04 23 01 11 10 89 07 DD

      我们可以发现DB以字节写入的数据是按顺序安放的,而DBDW却不是这样。我们可以理解为:高地址存高位,低地址存低位。例如0123H,用DW写入,01是高位放在高地址,23是低位放在低地址,这就体现了DW是按字存储的,将字拆分成两个字节存储。

    附源代码

    CODESEG SEGMENT

    ASSUME CS:CODESEG

    DW 0123H,0456H,0789H,1011H

    DB 01H,23H,04H,56H,07H,89H,10H,11H

    DD 01230456H,07891011H

    MOV AH,4CH

    INT 21H

    CODESEG ENDS

    END


    最后附上实验报告供大家参考顺便鄙视一下CSDN的下载内容需要积分这类方式,开源就开源嘛,搞什么稀奇?

    https://files.cnblogs.com/files/jdemarryme/%E6%B1%87%E7%BC%96%E5%AE%9E%E9%AA%8C%E4%BA%8C.pdf


  • 相关阅读:
    sql where 与 having的区别
    Linux下shell脚本监控Tomcat的状态并实现自动启动
    CentOS MySQL自动备份shell脚本
    HTTP请求时connectionRequestTimeout 、connectionTimeout、socketTimeout三个超时时间的含义
    Linux下搭建禅道项目管理软件
    JMeter压力测试及并发量计算-2
    JMeter压力测试及并发量计算-1
    Eclipse常用快捷键大全
    常用的adb命令
    js-消息对话框
  • 原文地址:https://www.cnblogs.com/jdemarryme/p/9074738.html
Copyright © 2011-2022 走看看