Posts 汇编
Post
Cancel

汇编

以8086为例

1.寄存器

通用寄存器(存放数据)

  1. AX -> AH AL
  2. BX
  3. CX -> 一般用来控制loop
  4. DX

  5. si di 与bx功能相近
  • ds 一般与 bx 配合作为数据段

段寄存器

地址计算方式: IP*16 + CS (20位)

指令地址:

  1. CS 段代码寄存器
  2. IP 指令寄存器

内存地址:

  1. ds寄存器 保存段地址
1
2
3
mov bx,1000h
mov ds,bx
mov [0], al

栈地址:

  1. 段寄存器 SS
  2. 寄存器:SP SS:SP 指向栈顶元素

2.指令

  • mov

  • add

  • jump

  1. jump 2AE3:3 -> CS = 2AE3H IP = 0003H 指令地址:2AE33H

  2. jmp ax -> mov IP,ax

  • inc inc bx -> bx+1

  • add 按位进行逻辑与运算

  • or 逻辑或运算

3.debuger

linux平台 安装dosemu模拟器

  1. sudo apt-get install dosemu

  2. 退出命令为 exitemu

  3. 退出debug q

  4. 进入 dosemu

3.1 debug命令

  1. R 查看改变寄存器内容
1
r ax  // 改变ax寄存器内容
  1. D 查看内存内容

  2. E 改写内存内容

  3. U 命令 翻译汇编

  4. T 执行内存中的机器码

  5. A 指令 直接写汇编

This post is licensed under CC BY 4.0 by the author.

Contents

Trending Tags