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


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

    任务一:

    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  寄存器/段寄存器/内存单元     出栈,用寄存器/段寄存器/内存单元接收出栈数据

  • 相关阅读:
    iOS中GestureRecognizer的6大手势与代理方法详细使用
    使用pan手势实现抽屉效果
    mfc HackerTools释放资源
    mfc HackerTools防止程序双开
    FLV简介
    AAC简介
    H.264简介
    PCM简介
    YUV格式
    编译ffmpeg(第一次),实现JPG转MP4
  • 原文地址:https://www.cnblogs.com/ljzww/p/9862933.html
Copyright © 2020-2023  润新知