汇编的学习

152 阅读2分钟

汇编的学习

机器如何运行

  • 通过地址取出指令和数据然后执行。
  • cpu是计算机的大脑,cpu分为逻辑运算单元和控制单元,还有各种寄存器
  • cpu和内存之间连接有三种总线:地址、数据、指令总线,通过哪种总线接收到的就是何种指令
关于地址和指令执行
  • 以8086为例,地址总线是20位,但8086内部最多为16位,因此地址由基地址(CS) 16位+ 偏移地址(IP)16位相加而成
  • 默认来说基地址要*16,也就是假如基地址是1000H(16进制),则实际是10000H,进一位
  • 当执行一条指令通常是2-3字节,假设执行是地址CS:5000H,IP:0H下的mov Ax, 1000H是三字节内容,那么执行指令正常情况下是顺序的,IP会默认偏移,则下次执行地址则为CS:5000H,IP:3H ,5003H
关于寄存器高低位
  • 以8086寄存器来说,16位的寄存器分为高位和低位
  • 比如Ax:分为al,ah,al为低位,ah为高位,从上至下,上是低位,下是高位
关于单位
  • 字单位为2字节(16bit),也就是4个16进制,每个16进制是4个2进制。
  • 字节单位为1字节(8bit),也就是2个16进制。
deubg的使用
安装
https://blog.csdn.net/alexzhang11/article/details/118556835
https://blog.csdn.net/lhh_qrsly/article/details/108707173?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ELandingCtr%7Edefault-1.queryctr&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ELandingCtr%7Edefault-1.queryctr&utm_relevant_index=1
命令使用
-e 1000:0 23 11 22 11 //-e 表示存数据,在地址1000:0存入23 11 22 11数据
-r 查看
-a 1386:0 插入指令
-t 单步执行
待做实验
https://www.bilibili.com/video/BV1zW411n79C?p=11
https://www.bilibili.com/video/BV1zW411n79C?p=12
https://www.bilibili.com/video/BV1zW411n79C?p=14&spm_id_from=pageDriver