逆向 - 汇编 - 第三天

中断

  • 中断是由于软件的或者硬件的信号, 使 CPU 暂停当前任务, 转而去执行另一段子程序.
  • 分类:
    • 硬中断 (外中断): 由外部设备(网卡, 硬盘)引发的
    • 软中断(内中断): 由执行中断指令引发的.
  • 可以通过指令 int n 产生中断
    • n 是中断码, 内存中有一张中断向量表, 用来存放中断码对应中断处理程序的入口地址,
    • CPU 在接收到中断信号后, 暂停当前正在执行的程序, 跳转到中断码对应的中断向量表地址处, 去执行中断处程序.
  • 常见中断
    • int 10h 用于执行 BIOS 中断
    • int 3 断点中断, 用于调试
    • int 21h 返回 AH 寄存器存储功能信号

DOS 系统功能调用

  • 由DOS 提供的一组实现特殊功能的子程序供程序员调用.
  • 涉及屏幕显示, 文件管理, IO 管理等
  • 每个子程序都有一个功能号, 所有的功能调用格式都是一致的.
    • 系统功能号送到寄存器 AH 中;
    • 入口参数送到指定的寄存器中;
    • 用 int 21H 指令执行功能调用 ;
    • 根据出口参数分析功能调用执行情况;

  • LIFO (后进先出)
  • SS(stack segment)栈段寄存器, SS:SP 指向栈顶元素
  • push(入栈), pop (出栈)

Loop 指令

  • loop 指令和 cx 寄存器配合使用, 用于循环操作类似 for while
  • 使用格式

mov cx ,循环次数
循环执行程序代码
loop 标号


  • loop 执行流程
      1. 现将 cx 寄存器的值 - 1, cx = cx-1;
      1. 判断 cx 的值,
      • 如果 cx 值不为0, 执行标号的代码, 重复1
      • 如果为0, 执行 loop 后面的代码

8086 伪指令

  • db(define byte)自定义字节
  • dw(define word)自定义字

你可能感兴趣的:(逆向 - 汇编 - 第三天)