标签:数据 程序员 使用 代码 改变 col 修改ip 存储器 物理地址
CPU
CPU由运算器、控制器、寄存器等器件构成,运算器进行信息处理,寄存器进行信息存储,控制器控制各种器件进行工作,内部总线连接各种器件,在它们之间进行数据的传送。程序员通过改变各种寄存器中的内容来实现对CPU的控制。
通用寄存器
8086CPU的所有寄存器都是16位的,通用寄存器包括AX,BX,CX,DX,这四个寄存器都可分为两个可独立使用的8位寄存器来用:
? AX可分为AH和AL
?BX可分为BH和BL
?CX可分为CH和CL
?DX可分为DH和DL
字在寄存器中的存储
字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中。
字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节,一个字可以存在一个16位寄存器中。
几条汇编指令
在进行数据传送或运算时,要注意指令的两个操作对象的位数应当时一致的
如:
mov ax,bl (在8位寄存器和16位寄存器之间传送数据)
mov bh,cx (在16位寄存器和8位寄存器之间传送数据)
mov al,20000 (8位寄存器最大可存放值为255的数据)
mov al,100H (将一个高于8位的数据加到一个8位寄存器中)
8086CPU给出物理地址的方法
当8086CPU要读写内存时:
(1) CPU中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;
(2) 段地址和偏移地址通过内部总线送入一个称为地址加法器的部件;
(3) 地址加法器将两个16位地址合成为一个20位的物理地址;
(4) 地址加法器通过内部总线将20位物理地址送入输入输出控制电路;
(5) 输入输出控制电路将20位物理地址送上地址总线;
(6) 20位物理地址被地址总线传送到存储器;
地址加法器采用物理地址=段地址*16+偏移地址的方法用段地址和偏移地址合成物理地址。
“段地址*16+偏移地址=物理地址”的本质含义
CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址
段的概念
在编程时可以根据需要,将若干地址连续的内存单元看作一个段,用段地址*16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。
段寄存器
包括:CS、DS、SS、ES
CS和IP
CS为代码段寄存器,IP为指令指针寄存器,jmp指令可修改CS和IP
“jmp 某一合法寄存器”指令的功能为:用寄存器中的值修改IP。
标签:数据 程序员 使用 代码 改变 col 修改ip 存储器 物理地址
原文地址:https://www.cnblogs.com/547hh/p/9859370.html