汇编语言-2寄存器

时间:2023-01-29 01:24:35

CPU由运算器,寄存器,控制器等组成···
在CPU内部:
运算器进行数据处理
寄存器进行信息的存储
控制器控制各种器件工作
内部总线相连来控制各个器件工作

而程序员是通过寄存器的内容来实现对CPU的控制
16位寄存器可分为两个独立的8位寄存器单独使用

2.2字在寄存器中的存储
处于兼容性的考虑,8086CPU可以一次性处理以下两种数据:
字节byte 一个字节
字word 两个字节

2.3几条汇编指令
mov ax,18
mov ah, 78
add ax, 8
mov ax,bx
add ax,bx
不区分大小写
在这里要注意:
**寄存器的位是一定的,
add 8226,8226 = 1044C中的1要舍去**

在进行运算和数据传送时要注意两个操作对象的位数应当是一致的

//2的4次方

mov ax,2
add ax ,ax
add ax,ax
add ax,ax
//由此实现2的4次方的计算
//2^1 = 2
//2^2 = 4
//2^3 = 8
//2^4 = 16

2.4物理地址:
内个内存单元的地址成为物理地址

CPU 16位的含义:
运算器最多一次性处理16位数据
寄存器的最大宽度为16位
寄存器和运算器之间的通路为16位

ADD:
计算机是以字节作为最小存储单元的,不是位,
16根地址线,寻址能力为:2^16 / 1024 = 64KB

2.6 8086CPU给出物理地址的方法:
8086系列的计算机,CPU外部地址总线为20根,CPU内部总线为16根
,采用的方法:
8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。
汇编语言-2寄存器
用一个16位生成段地址,再用一个16位寄存器生成偏移地址,送到地址加法器,生成20位的物理地址。

地址加法器是采用物理地址 = 段地址 * 16 + 偏移地址。
汇编语言-2寄存器
段地址 * 16 更常规的说法是左移四位。
汇编语言-2寄存器
右移一位相当于除2,右移n位相当于除以2的n次方。这里是取商哈,余数就不要了,低位要移出。
2.7“段地址 * 16 + 偏移地址”的本质含义:
在CPU进行访问时,用一个基础地质(段地址 * 16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。
2.8短的概念:
内存并没有分段,只是CPU对内存地址分了段,使得我们可以用分段的方式管理内存。
以后,在编程时可以把地址连续的内存单元看做一个段。有两点需要注意:
段地址* 16 必然是16的倍数,所以一个段的起始地址也一定为16的倍数,
偏移地址为16位,所以一个段的长度最大为64KB
··待续