精品文档微机原理笔记(一) -- 绪论第一章绪论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Ⅱ码:七位二进制数表示一个符号高位为 00~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:0100HPA = 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,DL3、直接寻址指令中直接给出了操作数的有效地址 EA(16 位) 未声明存放哪一段则 默认为数据段寄存器 DS 操作数的物理地址 =16*DS+EA指令中有效地址上必须加一个 方括号,以便与立即数相区别MOV A,X [200H]4、寄存器间接寻址操作数的地址在 BX、BP、SI 、DI 、SP段基址: BX(缺省) 、SI、DI 、DS、BP、SP MOV BX,[SI]5、相对寄存器寻址EA = ( BX, BP, SI , DI ) + 指令给出的 8 位或 16 位位移量 MOVAX [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,op2op1,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-->A;L否则什么都不做AL 的高四位 >9 或 CF=1,AL+06H-->A;L 否则不动作注: 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,op1op2(六) DAS:压缩 BCD码调整(七) AAS:非压缩 BCD码调整三、乘法指令(一) MUL:无符号数乘法指令MUL 源 // 源不能为立即数,可以是 8 位二进制数, 16 位二进制数功能:若源为 8 位, AL*源-->AX;若源为 16 位, AL*源-->DX,AX若运算结果高半部分为 0,则 OF=0,否则为 1(二) IMUL:无符号数乘法指令IMUL 源注:若乘积高半部分为低半部分的符号扩展,择 CF=0&OF=0,否则为 1(三) AAM:乘法的 ASCII调整指令四、除法指令:(一) DIV:无符号数除法指令DIV 源功能:如果源是 8 位, AX / 源 --> AL(高),AH(余)如果源是 16 位, DX,AX / 源 --> AX(高), DX(余)第 8 / 10 页注:此指令会产生除法溢出,即 16 位除以 8 位,结果必须是 8 位,32 位除以 16 位结果必须为 16 位。
二) IDIV:符号数除法指令IDIV 源功能:如果源为 8 位, AX / 源 --> AL(高),AH(低)如果源为 16 位, DX,AX / 源 --> AX(高),DX(低)注:除法溢出同 DIV(三) CBW功能:把 AL中字节的符号位扩充到 AH 的所有位,这时 AH 被称为 AL 的符号扩充 注:不影响 psw(四)CWD(五) AAD:除法的 ASCII调整指令功能:在做除法前,把 BCD码转换成二进制数注:影响 SF,ZF,P对F, OF,CF,AF无定义微机原理笔记(六) -- 逻辑运算和移位指令一、逻辑运算和移位指令(一) NOT:取反指令格式: NOT 目的功能:目的 <--目的取反注:对标志位无影响(二) AND:逻辑与指令格式: AND 目的,源功能:目的 <--目的与源注:主要用于操作数某些保留( “与 1”),和某些位清除(“与 0”)(三) OR:逻辑或指令格式: OR 目的,源功能:目的 <--。