zoukankan      html  css  js  c++  java
  • 汇编第四、五章知识总结

    第四了解汇编源程序从编写→调试

    1.简单的汇编源程序结构:

    ① 组成

    ② 几个常用的伪指令

    ③ 两条特殊指令

    (a) 指令

    产生机器码;由CPU执行;是程序执行的关键

    (b) 伪指令

    不产生机器码;由汇编器处理;

    做一些辅助性操作,如: 界定段的起止,界定程序结束位置等

    (c) 标号、注释等

    不产生机器码;由汇编器处理;

    常与伪指令配合使用,做一些辅助性操作

    2.注意:

    ①     编写汇编源程序时,默认是十进制。对于十六进制,需手动添加H。如:

    mov  ax, 30H  debug工具中默认是十六进制。二者不要混淆。

    ② 使用debug调试时,调试的必须是得到的可执行文件,且要带扩展名。即debug  ××.exe

    ③ 使用debug ××.exe调试时,首次进入调试界面时,寄存器CX中存放的是可执行文件机器码长度

    可以通过u命令,结合CS、IP、CX的值,对*.exe文件反汇编,得到汇编源程序。单步调试时,调试到int 21h这条时,使用p命令。

    1步,编写汇编程序文件example.asm  (使用任何文本编辑器均可)

    2步,对example.asm进行汇编,得到目标文件example.obj

    3步,对example.obj进行链接,得到可执行文件example.exe

    4步,执行。

    5步,使用debug调试可执行文件example.exe

     

    5章 [BX]和loop

    1. 内存单元间接表示: [bx]

    [bx]表示表示内存单元

    可以使用bx间接访问内存单元。默认,段地址在ds

    2. loop指令

    (1) 语法格式

    loop  标号

    (2) CPU执行指令过程

      (cx) ← (cx) - 1

       判断cx的值是否为0。

          如果(cx) ≠ 0,跳转到标号处执行;

          如果(cx) = 0, 执行loop后面的其它指令。

    总结:

    loop指令可以用来实现循环。需要和cx配合使用。

    框架:

    mov cx, 循环次数

    标号(需要循环执行的指令片段)

                       …

                loop   标号

    t命令:

    单步执行;遇loop会进入循环内部继续单步执行;

                    遇int会进入中断程序内继续单步执行;

    p命令:

    单步执行;遇loop或int会当做整体执行,不进入内部单步

    g命令:

    执行到指定地址;或遇程序结束或int,则终止执行

    3. loop指令和[bx]的联合应用

    (1) 指令中类型匹配、结果超范围问题

    (2) inc指令

    inc    寄存器        inc  bx          bx ← (bx) + 1

    inc    内存单元      inc [3]     ds:3 ← ((ds)×16 +3) + 1

    4.注意事项:

    (1) 在综合应用编程中,要注意:

         ① 指令中操作数类型是否匹配;

         ② 结果是否会超出寄存器或内存单元表示范围;

    (2) 可综合应用loop, [bx], inc指令实现循环,

         简化汇编源程序

    5.编写程序注意事项:

    段前缀

    安全内存空间

    反汇编中问题处理

    6.总结:

    内存单元间接表示: [bx]

    loop指令

    loop指令和[bx]的联合应用

    其它Tips:

     inc指令、段前缀、安全内存空间

     对于内存单元表示[0]的反汇编处理

     debug中的命令: t, p, g

  • 相关阅读:
    Mac idea 打不开
    git学习之git reset命令
    更改 macOS 用户帐户和个人文件夹的名称
    SpringBoot系列: 如何优雅停止服务
    windows环境下启动mongodb服务
    rocketMq4.2.0启动broker报错找不到或无法加载主类 FilesJavajdk1.8.0_101libdt.jar;C:Program]
    初创公司与成熟的公司各有什么利弊?有5年工作经验的人适合进那一个?(行业职位是一样的情况下)
    mac 10.15 国内如何安装brew
    Mac下SSH Key配置
    买苹果MacBook Pro ,有必要买care吗?
  • 原文地址:https://www.cnblogs.com/jasonIL/p/10054165.html
Copyright © 2011-2022 走看看