zoukankan      html  css  js  c++  java
  • 汇编实验二 用机器指令和汇编指令编程

    实验二  用机器指令和汇编指令编程

    任务一:

    1)用E命令将内存单元00210~00217连续8个字节数据修改为30H31H32H33H34H35H36H37H

    2)用A命令输入汇编指令:

    3)用T命令单步执行:

    在用T命令执行MOV SSAX时,它的下一条指令MOV  SP0100同时执行。

    4)填写书上内容: 

    任务二:

    观察如图实验过程,分析为什么20000~2000f中的内容会发生改变。

    任意时刻,SS:SP指向栈顶元素,初始时栈为空。初始时,栈顶为0B39FFEE,前三行命令为栈空间的初始化,T命令执行MOV SSAX修改SS的值,MOV SP10为修改SP的值,修改后安排2000:0000~2000:000F为栈空间,初始化栈顶,然后在栈中压入两个数据。执行之后栈顶为20000010,栈底为20000000

    实验总结

     本次实验我了解了使用debug 工具编写和调试汇编命令的方法,对内存中多字节数据的存放有了初步了解。也知道了栈空间先进后出的特性。本次实验主要讲了SS(栈段寄存器)和SP(栈指针寄存器)的值的修改以及内存单元的访问,压栈和出栈的实现方法,同时是实验一的复习使用。

    压栈和出栈:

    压栈:sp先减2,然后将数据按小端存入存储单元。

    出栈:先将sssp当前所指向的地址中的数据赋值给指定的寄存器,然后将sp2

    8086 汇编指令 mov, add, sub, push, pop 的用法:

    mov   寄存器 ,数据 /寄存器/内存单元      改变寄存器或内存中的内容(其他形式MOV 内存单元,寄存器/数据(段寄存器,寄存器))

    add    寄存器,数据/寄存器/内存单元或add  内存单元,寄存器      把内存或寄存器中的内容相加

    sub    寄存器,数据/寄存器/内存单元或sub  内存单元,寄存器     将内存或寄存器中的内容相减

    pushpop分别对应出栈和入栈的功能,形式如下:

    push 寄存器/段寄存器/内存单元     将寄存器/段寄存器/内存单元中的数据入栈

    pop  寄存器/段寄存器/内存单元     出栈,用寄存器/段寄存器/内存单元接收出栈数据

  • 相关阅读:
    eclipse pom文件报错 org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.Mav (Click for 1 more)
    严重: Compilation error org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
    powercfg -duplicatescheme 设置电源方案
    测试3
    测试2
    markdonwn 测试1
    Java线程池-线程工厂ThreadFactory
    Java线程池-拒绝策略
    一文读懂Base64编码
    ThreadLocal
  • 原文地址:https://www.cnblogs.com/ljzww/p/9862933.html
Copyright © 2011-2022 走看看