寄存器
历史
8086 --- 80286 --- 80386 --- Pentium
MS-DOS在实模式下运行(8086) , windows作为一个多任务系统,运行在80386的保护模式下,80386提供了虚拟8086模式,用于运行兼容8086处理器的程序。80286相比于80386微处理器,只提供了实模式和保护模式,没有虚拟8086模式。
8086架构
8086处理器是16位结构的CPU,一次可以存储一个字。一个字 = 2个字节 = 16 bit。
AX(accumulator),BX(base),CX(count),DX(data)。CS:IP(Code segment:Instruction pointer)寄存器的工作原理:段地址x16+偏移地址;一条指令取址执行的大致流程内存中的字的存储:小端
DS(data segment)寄存器和[address]- ds通常用于存放即将访问的数据的段地址;不允许通过立即数直接写入,不允许各种运算指令操作
SS:SP(Stack segment:Stack pointer)寄存器用于维护一个栈指针。
基础指令
- 如何改变
CS/IP寄存器的内容:jmp 寄存器修改ip;jmp 段地址:偏移地址同时修改CS,IP。
- 加减
add,sub;乘除mul,div。mul:它是单操作符。它将两个数相乘,均为8位,或者均为16位:- 均为8位,则另一个操作数默认在
AL中;结果默认放在AX中; - 均为16位,则另一个默认在
AX中,计算结果放在两个寄存器中,高8位在DX中,低8位在AX中。
- 均为8位,则另一个操作数默认在
- 栈操作
push,pop [address]代表一个偏移地址,可以是一个立即数或者寄存器。loop+cx寄存器实现循环
MS-DOS环境的使用
- -r查看和修改寄存器
- -d查看内存
- -e修改内存
- -u查看内存,但是自动转换汇编
- -a修改内存,但是输入的是汇编
- -t执行一条
cs:ip的指令