汇编语言笔记
汇编语言是直接在硬件之上工作的编程语言。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令的助记符,同机器指令一一对应。汇编指令是机器指令便于记忆的书写格式。每一种CPU都有自己的汇编指令集。
8个bit组成一个Byte(字节)。存储器的容量是以字节为最小单位来计算的。
根据传输信息的不同,总线从逻辑上分为3类:地址总线、控制总线和数据总线。
地址总线的宽度决定了CPU的寻址能力。数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量。控制总线的宽度决定了CPU对系统中其他器件的控制能力。
例题:80386的地址总线宽度为32根,它一次可以传送的数据为___B? 答案:32bit=4B
CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。
对CPU来讲,系统中所有存储器的存储单元都处于一个统一的逻辑存储器中。
典型CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。
寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。
8086的所有寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX 这四个寄存器通常用来存放一般性数据,被称为通用寄存器。这四个寄存器可以分为两个可独立使用的8位寄存器来用,例如AX可以分为AH和AL。
在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的。
8086有20位地址总线,可以达到1MB的寻址能力,但8086是16位结构,在内部一次性处理、传输、暂时存储的地址为16位,如果将地址从内部简单发出,只能送出16位地址,寻址能力只有64KB。
8086采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。
CPU中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址。地址加法器将两个16位地址合成为一个二十位的物理地址。
地址加法器采用物理地址=段地址*16 + 偏移地址的方法合成
。例如:段地址为1230,段地址*
16是对十进制而言的,对十六进制来说就是在后面加个零,就变成了12300,然后再加上偏移地址。
例题:有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为,最大为。答案:偏移地址为0时,SA最大,为2000H。想知道SA最小为多少,让偏移地址最大,但不能设偏移地址为FFFF,因为偏移地址的最后一位和物理地址的最后一位需要是一样的,所以应该设偏移地址为FFF0,所以段地址*
16为20000-FFF0=10010,所以SA最小为1001。