微机原理笔记

一、基础知识

BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。

  • 组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;

  • 非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。

  • 组合型:254=(001001010100)BCD
    非组合型:254=(00000010 00000101 00000100)BCD

  • Q表示八进制数。 八进制,Octal,缩写OCT或O

  • 在计算机系统中,数值一律用补码来表示和存储

  • 在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。

What are the main performance indexes of Microcomputer?
Answer: CPU word length, memory capacity, operation speed, CPU core and IO working voltage, manufacturing process, expansion capacity and software configuration.

微机原理笔记_第1张图片

  • 物理地址是访问存储器的实际地址,一个存储单元对应唯一的一个物理地址。逻辑地址是对应逻辑段内的一种地址表示形式,它由段基址和段内偏移地址两部分组成,通常表示为
    段基址:偏移地址。
    物理地址=段基址*10H+偏移地址。

  • 1KB的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。(一个内存单元=1Byte)

  • 数据总线是用来传送数据的,每根数据线传送一个二进制位,8根正好传送一个字节。

  • 地址总线是传送地址的,每根传送一个二进制位,8根地址线传送8个二进制位。这8个二进制位有28种不同的变化,所以可以用来传送28个不同存储单元的地址,也就是说用8根地址线可以寻址256B.

  • 在8086系统中,16个字就是32个字节,写成十六进制数就是20H,起始地址为808A0H:DDF6H的物理地址为:8E7F6H,所以数据区末字单元的物理地址为:8E7F6H+(20H-2)=8E7F6H+(10H-1)*2=8E814H

物理地址的形成
8086CPU的工作过程:
1 从CS:IP指向的内存单元读取指令进入指令缓冲器
2 IP=IP+指令长度
3 执行指令

IP=IP+所读指令的字节数。

一、没有操作数的指令,指令长度为1个字节

二、操作数只涉及寄存器的的指令,指令长度为2个字节

如:mov bx,ax

三、操作数涉及内存地址的指令,指令长度为3个字节

如:mov ax,ds:[bx+si+idata]

四、操作数涉及立即数的指令,指令长度为:寄存器类型+1

8位寄存器,寄存器类型=1,如:mov al,8;指令长度为2个字节

16位寄存器,寄存器类型=2,如:mov ax,8;指令长度为3个字节

五、跳转指令,分为2种情况:

1、段内跳转(指令长度为2个字节或3个字节)

jmp指令本身占1个字节

段内短转移,8位位移量占一个字节,加上jmp指令一个字节,整条指令占2个字节

如:jmp short opr

段内近转移,16位位移量占两个字节,加上jmp指令一个字节,整条指令占3个字节

如:jmp near ptr opr

2、段间跳转,指令长度为5个字节

如:jmp dword ptr table[bx][di]

或 jmp far ptr opr

或 jmp dword ptr opr

注意:形如“jmp
1234:5678”的汇编指令,是在Debug中使用的汇编指令,汇编编译器并不认识,如果在源程序中使用,那么在编译时便会报错。

二、寄存器

微机原理笔记_第2张图片

1、通用寄存器(8)

(1)数据寄存器 AX:累加器 (accumulator)

  • 所有I/O指令都通过AX与接口传送信息,中间运算结果也多放AX中;

BX:基址寄存器(base)

  • 在间接寻址中用于存放基地址;

CX:计数寄存器 (count)

  • 用于在循环或串操作指令中存放计数值;

DX:数据寄存器 (data)

  • 在间接寻址的I/O指令中存放I/O端口地址;在32位乘除法运算时,存放高16位数。

(2)地址指针寄存器

SP:堆栈指针寄存器 (Stack Pointer)其内容为栈顶的偏移地址;
BP:基址指针寄存器 (Base Pointer),常用于在访问内存时存放内存单元的偏移地址。

共同点: 1)默认指向堆栈区 2)多数情况用于存放地址

(3) 变址寄存器
SI:源变址寄存器
DI:目标变址寄存器 变址寄存器在指令中常用于存放数据在内存中的地址。

2、控制寄存器(2)

标志寄存器
OF overflow flag 溢出标志 操作数超出机器能表示的范围表示溢出,溢出时为1.
SF sign Flag 符号标志 记录运算结果的符号,结果负时为1.
ZF zero flag 零标志 运算结果等于0时为1,否则为0.
CF carry flag 进位标志 最高有效位产生进位时为1,否则为0.
AF auxiliary carry flag 辅助进位标志 运算时,第3位向第4位产生进位时为1,否则为0.
PF parity flag 奇偶标志 运算结果操作数位为1的个数为偶数个时为1,否则为0.
DF direcion flag 方向标志 用于串处理.DF=1时,每次操作后使SI和DI减小.DF=0时则增大.
IF interrupt flag 中断标志 IF=1时,允许CPU响应可屏蔽中断,否则关闭中断.
TF trap flag 陷阱标志 用于调试单步操作.

3、段寄存器(4)

用于存放相应逻辑段的段基地址 8088有4个16位段寄存器

CS(代码段) (Code Segment) 指明代码段的起始地址
SS(堆栈段) (Data Segment) 指明堆栈段的起始地址
DS(数据段)(Stack Segment) 指明数据段的起始地址
ES(附加段) (Extra Segment)指明附加段的起始地址

  • 存放相应段的段基址的高16位。每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途。
  • 它们要和BX、BP、SI、DI、IP配合形成存储单元的物理地址。

你可能感兴趣的:(其他,其他)