微机原理笔记 下载本文

内容发布更新时间 : 2024/5/19 22:56:41星期一 下面是文章的全部内容请认真阅读。

微机原理笔记(一)--绪论

第一章绪论

1-2 计算机的结构

总线:信息传输的通道 AB、DB、CB 常用术语:

位(bit):信息处理和传送的最小单位

字节(byte):8为二进制数构成一个字节(char)字:16位二进制数构成一个字,两个字节(int)信息储存的最小单位

双字:32位二进制数构成一个字,两个字(long)指令:让CPU执行基本操作的命令

指令的构成:操作数、操作码 CPU执行一条指令的过程:取指令代码->译码->执行指令系统:CPU可执行所有指令的集合

程序:指令的有机结合 1-3进位计数制

计算符号: D 10个、B 2个、H 16个 权:D 10的幂、B 2的幂、H 16的幂 基:D 10、B 2、H 16 任意进制

整数部分,除以基取余,逆序排列

小数部分,乘以基取整,顺序排列 符号数的表示:

正数的反码表示:与该数原码相同

负数的反码表示:在其正数反码表示基础上按位求反补码: 正数的部门与原码相同

负数的部门在正数的补码表示,按位求反,在最低位加1 注:1、补码不等于负数

2、求补不等于补码,求补是求其相反数的操作 二进制编码 1、 BCD码

压缩的BCD码:一个字节表示2位BCD码 非压缩的BCD码:一个自己表示1位BCD码

2、ASCⅡ码:七位二进制数表示一个符号高位为0

0~9=30H~39H A~Z=41H~5AH a~z=61H~7AH “空格”=20H “回车”=0DH “换行”=0AH

微机原理笔记(二)--8086结构 一、8086CPU内部结构

段寄存器:CS、DS、SS、ES、IP(指令指针,存放下一条直线指令在存储单元内的地址,每取一个字节的指令代码会自动加1)

二、8086寄存器结构

AX:16位寄存器,分为2个8位AH、AL 作用:1、通用寄存器,数据的存取

2、与DX一起构成双字作为低16位,在乘法和除法指令中使用 3、作为累加器

BX:16位寄存器,分为2个8位BH、BL 作用:1、通用寄存器

2、作为访问存储器的地址指针

CX:16位寄存器,分为2个8位CH、CL

作用:1、通用寄存器 2、在循环指令中作为循环计数器、循环指令。在串操作指令中传送计数器。 DX:16位寄存器,分为2个8位DH、DL 作用:1、通用寄存器

2、与AX一起构成双字作为高16位,在乘法、除法指令中使用 3、作为输入、输出地址,不可有作为存储器地址 BP:16位寄存器

作用:1、通用寄存器 2、访问存储器的地址指针

SP:16位堆栈指针,只想堆栈的栈顶,可作为访问存储器地址 SI、DI:16位寄存器 作用:1、通用寄存器

2、可以作为访问存储器的地址 3、在变址寻址时作为变址寄存器

4、在串操作时,SI作为源指针,DI作为目的指针

FLAGS(psw):程序状态字,16位寄存器,又称FL、FR 三、8086CPU引脚介绍(P28)

四、8086存储器的组织结构(P31) 偏移地址EA(有效地址)16位 BX、BP、SI、DI、SP、IP 直接地址 限制:段起手地址的低四位必须为0 物理地址=段基址×16+EA(有效地址) 物理地址<-->存储单元

0300H:0100H

PA = 0300H*16 + 0100H = 03000H + 0100H = 03100H 微机原理笔记(三)--寻址方式 寻址方式

得到操作数或操作数的地址的方法

源操作数寻址,1-7,7种;目的操作数寻址,2-7,6种 1、立即寻址

指令中直接给出了参加操作的操作数 MOV AX,3680(80放入AL,36放入AH)

ADD BL,30H

用BL的内容加上30H的结果送入BL 2、寄存器寻址

操作数在CPU内部的某一个寄存器

16操作数,寄存器可以是AX,BX,CX,DX,SI,DI,SP,BP等 8操作数,寄存器可以是AH,AL.BH,BL,CH,CL,DH,DL 3、直接寻址

指令中直接给出了操作数的有效地址EA(16位) 未声明存放哪一段则默认为数据段寄存器DS 操作数的物理地址=16*DS+EA

指令中有效地址上必须加一个方括号,以便与立即数相区别 MOV AX,[200H] 4、寄存器间接寻址

操作数的地址在BX、BP、SI、DI、SP 段基址:BX(缺省)、SI、DI、DS、BP、SP

MOV BX,[SI]

5、相对寄存器寻址

EA = ( BX , BP , SI , DI ) + 指令给出的8位或16位位移量 MOV AX [BX+5] = MOV AX 5[BX]

6、基址变址寻址方式

EA = ( BX , BP ) + ( SI, DI) BX缺省DS , BP缺省SS 7、相对基址变址寻址方式

EA = ( BX , BP )+ ( SI , DI ) + 8位或16位位移量 注:计算EA,结果一定是16位 计算PA,结果一定是20位

微机原理笔记(四) --数据传送指令 一、 MOV MOV目的,源

将源的内容送到目的中

MOV [AX],0 //8位传送或16位传送 MOV byte ptr [BX],0 //8位传送 MOV word ptr [BX],0 //16位传送

通用寄存器、存储器<-->数寄存器 [CS不可作为目的] 通用寄存器<-->存储器

通用寄存器<-->通用存储器 注:

1、 CS、IP和立即数不能作为目的操作数 2、操作数的尺寸必须一致

3、两个操作数不能同时位存储器操作数(串操作除外) 二、堆栈操作指令

堆栈:记寻返回地址,按照后进先出的原则组织,保存地址或数据的布局 硬件堆栈:专门的布局,一般在CPU内部,速度快,容量小; 在存储器中开发一块区域作为堆栈使用,速度慢 8086堆栈生成方式

向下生成:从地址高的地方向地址低的地方使用 向上生成:从地址低的地方向地址高的地方使用 操作方式:

按字节(8051) 按字(8086) 按双字:

堆栈指针SP(16位)

指向栈顶(最后一个入栈数据存放单元) 入栈:PUSH 源 出栈:POP 目的 三、交换指令 XGHG op1,op2

op1,op2不可同时为存储器操作数,任何一个都不能为段寄存器操作数 四、换码指令 XLAT (表名) 第6 / 10页

五、地址传送指令 1、LEA 目的,源

将源的有效地址(EA)送到目的中 2、LDS 寄存器名,存储器

从源操作数指定的存储单元中取出4字节的连续地址,前2个字节送入目的寄存器,后两个字节送入DS中

六、标志传送

1、LAHF 将psw中低8位送入AH中 2、SAHF 将AH内容存入psw中低8位 3、pushF将psw送入栈中 4、popF标志出栈 七、输入输出指令 IN/OUT

微机原理笔记(五) -- 算数运算指令 一、加法指令:

(一)ADD:不带进位位的二进制加法指令

ADD 目的,源 //两者均不能为段寄存器,目的不能为立即数 功能:目的+源-->目的

将CF清零 ADD AL,0

(二)ADC:带进位的二进制加法指令 ADC 目的,源 //影响psw 功能:目的+源+CF-->目的 (三)INC:加1指令

INC 目的(源) //影响psw,不影响CF 功能:目的+1-->目的 (四)BCD加法调整指令

1、 DAA:组合的BCD码加法调整指令

功能:AL的低四位>9或AF=1,AL+06H-->AL;否则什么都不做 AL的高四位>9或CF=1,AL+06H-->AL;否则不动作 注:DAA只能调整AL,不能调整AH。 2、 AAA:非压缩的加法调整指令

功能:根据当前标志,对AL内容进行调整 AL的低四位<=9且AF=0,只将AL的高四位清零 AL的低四位>9或AF=1(不会同时产生),AL+06H-->AL,AH+1-->AH 第7 / 10页 二、减法指令

(一)SUB:不带进位的二进制减法指令 SUB 目的,源

功能:目的-源-->目的

(二)SBB:带进位的二进制减法指令 SBB 目的,源 //影响psw 功能:目的-源-CF-->目的 (三)DEC:减1指令

DEC 目的 //影响psw,不影响CF 功能:目的-1-->目的 (四)NEG:求补指令 NEG 目的 //影响psw 功能:0-目的-->目的 (五)CMP:比较指令

CMP op1,op2 //op1-op2,影响psw(同SUB)

用途:比较两数是否相等:ZF=1,op1=op2;ZF=0,op1!=op2 比较两个无符号数大小:CF=1,op1=op2;CF=0&ZF=0,op1>op2; 比较两个带符号数大小:OF⊕SF=0,op1>=op2; OF⊕SF=1,op1

(OF⊕SF=0)&ZF=0,op1>op2 (六)DAS:压缩BCD码调整 (七)AAS:非压缩BCD码调整 三、乘法指令

(一)MUL:无符号数乘法指令

MUL 源 //源不能为立即数,可以是8位二进制数,16位二进制数 功能:若源为8位,AL*源-->AX; 若源为16位,AL*源-->DX,AX