《2022年微机原理与接口技术知识点总结整理3.docx》由会员分享,可在线阅读,更多相关《2022年微机原理与接口技术知识点总结整理3.docx(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 微机原理与接口技术微机原理与接口技术复习参考资料第一章 概 述一、运算机中的数制 1、无符号数的表示方法:(1)十进制计数的表示法 特点:以十为底,逢十进一;共有 0-9 十个数字符号;(2)二进制计数表示方法:特点:以 2 为底,逢 2 进位;只有 0 和 1 两个符号;(3)十六进制数的表示法:特点:以 16 为底,逢 16 进位;有 0-9 及 AF(表示 1015 )共 16 个数字符号;2、各种数制之间的转换(1)非十进制数到十进制数的转换按相应进位计数制的权表达式绽开,再按十进制求和;(见书本1.2.3 ,1.2.4 )(2)十进制
2、数制转换为二进制数制十进制 二进制的转换:整数部分:除 2 取余;小数部分:乘 2 取整;十进制 十六进制的转换:整数部分:除 16 取余;小数部分:乘 16 取整;以小数点为起点求得整数和小数的各个位;(3)二进制与十六进制数之间的转换 用 4 位二进制数表示 1 位十六进制数 3、无符号数二进制的运算(见教材 P5 )4、二进制数的规律运算 特点:按位运算,无进借位( 1)与运算 只有 A、B 变量皆为 1 时,与运算的结果就是 1 ( 2)或运算A、 B 变量中,只要有一个为1,或运算的结果就是1 ( 3)非运算( 4)异或运算 A、 B 两个变量只要不同,异或运算的结果就是 1 二、运
3、算机中的码制1、对于符号数,机器数常用的表示方法有原码、反码和补码三种;数 X的原码记作 X 原,反码记作 X 反,补码记作 X 补;1 / 46名师归纳总结 - - - - - - -第 1 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术留意:对正数,三种表示法均相同;它们的差别在于对负数的表示;(1)原码 定义:符号位: 0 表示正, 1 表示负;数值位:真值的肯定值;留意:数 0 的原码不唯独(2)反码 定义:如 X0 ,就 X反 =X 原如 X0 , 就X补= X 反= X 原如 X0 , 就X补= X 反+1留意:机器字长为8 时,数 0 的补码
4、唯独,同为000000002、8 位二进制的表示范畴:原码: -127+127 反码: -127+127 补码: -128+127 3、特别数 10000000 该数在原码中定义为:-0 在反码中定义为:-127 在补码中定义为:-128 对无符号数: 10000000 = 128 三、信息的编码 1、 十进制数的二进制数编码 用 4 位二进制数表示一位十进制数;有两种表示法:压缩 BCD 码和非压缩 BCD 码;表示 09 ,一个字节表示两位(1)压缩 BCD 码的每一位用 4 位二进制表示,00001001 十进制数;(2)非压缩 BCD 码用一个字节表示一位十进制数,表示 09 2、 字
5、符的编码 运算机采纳 7 位二进制代码对字符进行编码高 4 位总是 0000 ,低 4 位的 00001001(1)数字 09 的编码是 01100000111001 ,它们的高 3 位均是 011,后 4 位正好与其对 应的二进制代码(BCD 码)相符;2 / 46名师归纳总结 - - - - - - -第 2 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术(2)英文字母AZ 的 ASCII 码从 1000001 (41H )开头次序递增,字母az 的 ASCII 码从 1100001 (61H )开头次序递增,这样的排列对信息检索非常有利;其次章 微机
6、组成原理第一节、微机的结构 1、运算机的经典结构冯 . 诺依曼结构(1)运算机由运算器、掌握器、输入设备和输出设备五大部分组成(运算器和掌握器又称 为 CPU)(2)数据和程序以二进制代码形式不加区分地存放在储备器总,存放位置由地址指定,数 制为二进制;(3)掌握器是依据存放在储备器中的指令序列来操作的,并由一个程序计数器掌握指令的执行;3、 系统总线的分类(1)数据总线( Data Bus ),它打算了处理器的字长;(2)地址总线( Address Bus ), 它打算系统所能直接拜访的储备器空间的容量;(3)掌握总线( Control Bus)其次节、 8086 微处理器1、8086 是一
7、种单片微处理芯片,其内部数据总线的宽度是 16 位,片内包含有掌握运算机全部功能的各种电路;16 位,外部数据总线宽度也是8086 地址总线的宽度为 20 位,有 1MB (220)寻址空间;2、 8086CPU 由总线接口部件 BIU 和执行部件 EU 组成; BIU 和 EU 的操作是异步的,为8086 取指令和执行指令的并行操作体统硬件支持;3、 8086 处理器的启动4、寄存器结构8086 微处理器包含有 13 个 16 位的寄存器和 9 位标志位;4 个通用寄存器(AX ,BX, CX,DX )4 个段寄存器( CS ,DS, SS,ES )4 个指针和变址寄存器(SP,BP ,SI
8、,DI)指令指针( IP)1)、通用寄存器(1)8086 含 4 个 16 位数据寄存器,它们又可分为AX AH ,AL BX BH ,BL CX CH ,CL DX DH ,DL 常用来存放参加运算的操作数或运算结果(2)数据寄存器特有的习惯用法8 个 8 位寄存器,即:AX :累加器;多用于存放中间运算结果;全部I/O 指令必需都通过AX 与接口传送信息;BX :基址寄存器;在间接寻址中用于存放基地址;CX :计数寄存器;用于在循环或串操作指令中存放循环次数或重复次数;3 / 46名师归纳总结 - - - - - - -第 3 页,共 46 页精选学习资料 - - - - - - - -
9、- 微机原理与接口技术DX :数据寄存器;在32 位乘除法运算时,存放高16 位数;在间接寻址的I/O 指令中存放 I/O 端口地址;2)、指针和变址寄存器 SP :堆栈指针寄存器,其内容为栈顶的偏移地址;BP :基址指针寄存器,常用于在拜访内存时存放内存单元的偏移地址;SI:源变址寄存器 DI:目标变址寄存器 变址寄存器常用于指令的间接寻址或变址寻址;3)、段寄存器 CS:代码段寄存器,代码段用于存放指令代码 DS:数据段寄存器 ES :附加段寄存器,数据段和附加段用来存放操作数 SS :堆栈段寄存器,堆栈段用于存放返回地址,储存寄存器内容,传递参数 4)、指令指针(IP )16 位指令指针
10、寄存器,其内容为下一条要执行的指令的偏移地址;5)、标志寄存器(1)状态标志:进位标志位( CF):运算结果的最高位有进位或有借位,就 CF=1 帮助进位标志位(AF ):运算结果的低四位有进位或借位,就 AF=1 溢出标志位( OF ):运算结果有溢出,就 OF=1 零标志位( ZF):反映指令的执行是否产生一个为零的结果 符号标志位( SF):指出该指令的执行是否产生一个负的结果奇偶标志位( PF):表示指令运算结果的低8 位“1”个数是否为偶数(2)掌握标志位 中断答应标志位(IF):表示 CPU 是否能够响应外部可屏蔽中断恳求 跟踪标志( TF ):CPU 单步执行 5、8086 的引
11、脚及其功能(重点把握以下引脚)AD 15 AD0 :双向三态的地址总线,输入 /输出信号 IF 的值来掌握;INTR :可屏蔽中断恳求输入信号,高电平有效;可通过设置 NMI :非屏蔽中断输入信号;不能用软件进行屏蔽;RESET :复位输入信号,高电平有效;复位的初始状态见 P21 MN/MX :最小最大模式输入掌握信号;第三章 8086 指令系统第一节 8086 寻址方式 一、数据寻址方式 1、立刻寻址 操作数 为一常数 直接由指令给出 此操作数称为立刻数 4 / 46名师归纳总结 - - - - - - -第 4 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与
12、接口技术立刻寻址只能用于源操作数例:MOV AX, 1C8FH MOV BYTE PTR2A00H, 8FH 错误例: MOV 2A00H,AX ; 错误!指令操作例: MOV AX ,3102H; AX 3102H 执行后, AH = 31H , AL = 02H 2、寄存器寻址(1)操作数放在某个寄存器中(2)源操作数与目的操作数字长要相同(3)寄存器寻址与段地址无关例: MOV AX, BX MOV 3F00H, AX MOV CL, AL 错误例: MOV AX,BL ; 字长不同 MOV ES:AX,DX ; 寄存器与段无关3、直接寻址(1)指令中直接给出操作数的16 位偏移地址偏移
13、地址也称为有效地址EA, Effective Address (2)默认的段寄存器为 DS,但也可以显式地指定其他段寄存器称为段超越前缀(3)偏移地址也可用符号地址来表示,如 ADDR、VAR 例:MOV AX ,2A00H MOV DX ,ES:2A00H MOV SI,TABLE_PTR 4、间接寻址操作数的偏移地址 有效地址 EA放在寄存器中只有 SI、DI 、BX 和 BP 可作间址寄存器例: MOV AX,BXMOV CL,CS:DI 错误例:MOV AX, DXMOV CL, AX 5、寄存器相对寻址EA= 间址寄存器的内容加上一个 8/16 位的位移量例:MOV AX, BX+8
14、MOV CX, TABLESI 5 / 46名师归纳总结 - - - - - - -第 5 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术MOV AX, BP; 默认段寄存器为 SS 指令操作例: MOV AX ,DATABX 如DS=6000H, BX=1000H, DA TA=2A00H, 63A00H=66H, 63A01H=55H 就物理地址 = 60000H + 1000H + 2A00H = 63A00H 指令执行后: (AX )=5566H 6、基址变址寻址如操作数的偏移地址:由基址寄存器 BX 或 BP给出 基址寻址方式由变址寄存器 SI
15、或 DI 给出变址寻址方式由一个基址寄存器的内容和一个变址寄存器的内容相加而形成操作数的偏移地址,称为基址 -变址寻址;EA= ( BX )+(SI)或( DI );EA= ( BP)+(SI)或( DI)同一组内的寄存器不能同时显现;留意:除了有段跨过前缀的情形外,当基址寄存器为BX 时,操作数应当存放在数据段DS中,当基址寄存器为BP 时,操作数应放在堆栈段SS中;例:MOV AX, BX SI MOV AX, BX+SI MOV AX, DS: BP DI 错误例:MOV AX, BX BP MOV AX, DI SI 指令操作例: MOV AX ,BXSI假定: DS=8000H, B
16、X=2000H, SI=1000H 就物理地址 = 80000H + 2000H + 1000H = 83000H 指令执行后 : AL=83000H AH=83001H 7、相对基址变址寻址在基址 -变址寻址的基础上再加上一个相对位移量EA= ( BX )+(SI)或( DI )+8 位或 16 位位移量;EA= ( BP)+(SI)或( DI) +8 位或 16 位位移量指令操作例 :MOV AX,DATADIBX 如DS=8000H, BX=2000H, DI=1000H, DATA=200H 就指令执行后 AH=83021H, AL=83020H 寄存器间接、寄存器相对、基址变址、相对
17、基址变址四种寻址方式的比较:寻址方式指令操作数形式之一)寄存器间接只有一个寄存器(BX/BP/SI/DI寄存器相对一个寄存器加上位移量基址 变址两个不同类别的寄存器6 / 46名师归纳总结 - - - - - - -第 6 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术相对基址 -变址 两个不同类别的寄存器加上位移量二、地址寻址方式(明白有 4 类,能判定)简要判定依据(指令中间的单词):段内直接 short,near 段内间接 word 段间直接 far 段间间接 dword 其次节 8086指令系统一、数据传送指令1、通用传送指令1 MOV dest
18、,src; destsrc 传送的是字节仍是字取决于指令中涉及的寄存器是 8 位仍是 16 位;具体来说可实现:MOV mem/reg1,mem/reg2 指令中两操作数中至少有一个为寄存器 MOV reg,data ;立刻数送寄存器 MOV mem,data ;立刻数送储备单元 MOV acc,mem ;储备单元送累加器 MOV mem,acc ;累加器送储备单元 MOV segreg,mem/reg ; 储备单元 /寄存器送段寄存器 MOV mem/reg,segreg ;段寄存器送储备单元 /寄存器MOV 指令的使用规章IP 不能作目的寄存器不答应 mem mem 不答应 segregs
19、egreg 立刻数不答应作为目的操作数不答应 segreg立刻数源操作数与目的操作数类型要一样当源操作数为单字节的立刻数,而目的操作数为间址、变址、基址 须用 PTR 说明数据类型;如:MOV BX ,12H 是错误的;(2)、堆栈指令 什么是堆栈?+变址的内存数时,必按 “后进先出 LIFO ”方式工作的储备区域;堆栈以 字为单位进行压入弹出操作;规定由 SS 指示堆栈段的段基址,堆栈指针 SP 始终指向堆栈的顶部,SP 的初值规定了所 用堆栈区的大小;堆栈的最高地址叫栈底;压栈指令 PUSH ; src 为 16 位操作数PUSH src 7 / 46名师归纳总结 - - - - - -
20、-第 7 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术例: PUSH AX ;将 AX 内容压栈 执行操作:( SP)-1高字节 AH (SP)-2低字节 AL SP( SP)- 2 留意进栈方向是高地址向低地址进展; 弹出指令 POP POP dest 例: POP BX ;将栈顶内容弹至 BX 执行操作:(BL )( SP)(BH)( SP)+1 (SP)( SP)+2 堆栈指令在使用时需留意的几点: 堆栈操作总是按字进行 不能从栈顶弹出一个字给 CS 堆栈指针为 SS:SP,SP 永久指向栈顶 SP 自动进行增减量(-2,+2)(3)、交换指令 X
21、CHG 格式: XCHG reg,mem/reg 功能:交换两操作数的内容;要求:两操作数中必需有一个在寄存器中;操作数不能为段寄存器和立刻数;源和目地操作数类型要一样;举例:XCHG AX ,BX XCHG 2000 ,CL (4)查表指令 XLAT 执行的操作: AL BX+AL 又叫查表转换指令,它可依据表项序号查出表中对应代码的内容;执行时先将表的首地址(偏移地址)送到BX 中,表项序号存于AL 中;2、输入输出指令 只限于用累加器 AL 或 AX 来传送信息;功能 : 累加器 I/O 端口(1)输入指令 IN 格式 : IN acc,PORT ;PORT 端口号 0255H IN a
22、cc,DX ;DX 表示的端口范畴达64K 例 :IN AL ,80H ;AL 80H 端口 IN AL ,DX ;AL DX 8 / 46名师归纳总结 - - - - - - -第 8 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术2 输出指令 OUT 格式: OUT port,acc I/O 端口号设置到DX 寄存器OUT DX,acc 例: OUT 68H ,AX ;69H ,68H( AX )OUT DX ,AL ;DX AL 在使用间接寻址的IN/OUT 指令时,要事先用传送指令把如:MOV DX ,220H AL IN AL ,DX; 将 22
23、0H 端口内容读入3、目标地址传送指令(1)LEA 传送偏移地址格式: LEA reg ,mem 要求:; 将指定内存单元的偏移地址送到指定寄存器1 源操作数 必需是一个 储备器操作数;2 目的操作数必需是一个 16 位的通用寄存器;例: LEA BX , SI+10H 设:(SI)=1000H 就执行该指令后, (BX ) =1010H 留意以下二条指令差别:LEA BX ,BUFFER MOV BX ,BUFFER 前者表示将符号地址为BUFFER 的储备单元的偏移地址取到BX 中;后者表示将BUFFER 存储单元中的内容取到BX 中;下面两条指令等效:LEA BX ,BUFFER MOV
24、 BX, OFFSET BUFFER 其中 OFFSET BUFFER表示储备器单元BUFFER 的偏移地址;OFFSET 只能取二者都可用于取储备器单元的偏移地址,但LEA 指令可以取动态的地址,静态的地址;二、算术运算指令1、 加法指令 1 不带进位的加法指令 ADD 格式:ADD acc,data ADD mem/reg,data ADD mem/reg1,mem/reg2 实例:9 / 46名师归纳总结 - - - - - - -第 9 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术ADD AL ,30H ADD SI,BX+20H ADD CX
25、,SI ADD DI ,200H .ADD 指令对 6 个状态标志均产生影响;例:已知 BX=D75FH 指令 ADD BX,8046H 执行后,状态标志各是多少?D75FH = 1110 0111 0101 1111 8046H = 1000 0000 0100 0110 1 1 11 11 0110 0111 1010 0101结果: C=1, Z=0, P=0, A=1, O=1, S=0 判定溢出与进位从硬件的角度: 默认参加运算的操作数都是有符号数,当两数的符号位相同,而和的结果相异时有溢出,就OF=1,否就 OF=0 (2)带进位的加法ADC ADC 指令在形式上和功能上与 ADD
26、 类似,只是相加时仍要包括进位标志 CF 的内容,例如:ADC AL , 68H ; AL AL+68H+CF ADC AX , CX ;AX AX+CX+CF ADC BX, DI ;BX BX+DI+1DI+CF (3)加 1 指令 INC 格式: INC reg/mem 1 功能:类似于C 语言中的 +操作:对指定的操作数加例:INC AL INC SI INC BYTE PTRBX+4 注:本指令不影响 CF 标志;(4)非压缩 BCD 码加法调整指令 AAA AAA 指令的操作:假如 AL 的低 4 位 9 或 AF=1 ,就: AL AL+6,AH AH+1,AF 1 AL 高 4
27、 位清零 CFAF 否就 AL 高 4 位清零(5)压缩 BCD 码加法调整指令DAA BCD 码. 两个压缩 BCD 码相加结果在AL 中,通过 DAA 调整得到一个正确的压缩指令操作 调整方法 :如 AL 的低 4 位 9 或 AF=1 10 / 46名师归纳总结 - - - - - - -第 10 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术就AL AL+6 ,AF 1 如 AL 的高 4 位 9 或 CF=1 就AL AL+60H ,CF1 除 OF 外, DAA 指令影响全部其它标志;DAA 指令应紧跟在 ADD 或 ADC 指令之后;2、 减
28、法指令(1)不考虑借位的减法指令 SUB 格式: SUB dest, src 操作: dest dest-src 注:1. 源和目的操作数不能同时为储备器操作数 2. 立刻数不能作为目的操作数 指令例子:SUB AL,60H SUB BX+20H ,DX SUB AX,CX (2)考虑借位的减法指令 SBB SBB指令主要用于多字节的减法;格式: SBB dest, src 操作: dest dest-src-CF 指令例子:SBB AX,CX SBB WORD PTRSI,2080H SBB SI,DX (3)减 1 指令 DEC 作用类似于 C语言中的” ” 操作符;格式: DEC opr
29、 操作: opr opr-1 指令例子:DEC CL DEC BYTE PTRDI+2 DEC SI (4)求补指令NEG 0 减去此操作数,故利用NEG 指令可得到负数的肯定值;格式:NEG opr 操作:opr 0-opr 对一个操作数取补码相当于用例:如 AL=0FCH ,就执行NEG AL 后,AL=04H ,CF=1 (5)比较指令 CMP 格式:CMP dest, src 操作:dest-src 11 / 46名师归纳总结 - - - - - - -第 11 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术CMP 也是执行两个操作数相减,但结果不
30、送目标操作数,其结果只反映在标志位上;指令例子:CMP AL ,0AH CMP CX ,SI CMP DI ,BX+03 (6)非压缩 BCD 码减法调整指令 AAS 对 AL 中由两个非压缩的BCD码相减的结果进行调整;调整操作为:如 AL 的低 4 位 9 或 AF=1,就: AL AL-6,AH AH-1,AF 1 AL 的高 4 位清零 CF AF 否就: AL的高 4 位清零(7)压缩 BCD码减法调整指令 DAS 对 AL 中由两个压缩 BCD码相减的结果进行调整;调整操作为:如 AL 的低 4 位 9 或 AF=1,就:ALAL-6, 且 AF1 如 AL 的高 4 位 9 或
31、CF=1,就:ALAL-60H ,且 CF1 DAS对 OF无定义 , 但影响其余标志位;DAS指令要求跟在减法指令之后;3、 乘法指令 进行乘法时: 8 位*8 位 16 位乘积 16 位*16 位 32 位乘积1 无符号数的乘法指令 MULMEM/REG 格式: MUL src 操作:字节操作数AXAL src src 字操作数DX, AX AX 指令例子:MUL BL ; AL BL, 乘积在 AX中 MUL CX ; AX CX, 乘积在 DX,AX中 MUL BYTE PTRBX (2)有符号数乘法指令 IMUL 格式与 MUL 指令类似,只是要求两操作数均为 有符号数 ;指令例子:
32、IMUL BL ;AX AL BL IMUL WORD PTRSI ;DX,AX AX SI+1SI 12 / 46名师归纳总结 - - - - - - -第 12 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术留意: MUL/IMUL指令中 ALAX 为隐含的乘数寄存器; AXDX,AX 为隐含的乘积寄存器; SRC 不能为立刻数;除 CF和 OF外,对其它标志位无定义;4、除法指令进行除法时: 16 位/8 位 8 位商32 位/16 位 16 位商对被除数、商及余数存放有如下规定:被除数商余数字节除法AX AL AH 字除法DX:AX AX DX (
33、1)无符号数除法指令DIV 格式: DIV src 操作:字节操作 AL AX / SRC 的商AHAX / SRC 的余数字操作 AX DX, AX / SRC 的商DX DX, AX / SRC 的余数指令例子:DIV CL DIV WORD PTRBX (2)有符号数除法指令 IDIV 格式:IDIV src 操作与 DIV 类似;商及余数均为有符号数 留意 : 对于 DIV/IDIV 指令AXDX,AX 为隐含的被除数寄存器;ALAX 为隐含的商寄存器;AHDX 为隐含的余数寄存器;src 不能为立刻数;对全部条件标志位均无定关于除法操作中的字长扩展问题,且余数符号总是与被除数符号相同
34、;.除法运算要求被除数字长是除数字长的两倍,如不满意就需 对被除数进行扩展,否就产生错误;.对于无符号数除法扩展,只需将 AH 或 DX 清零即可;.对有符号数而言 ,就是符号位的扩展;可使用前面介绍过的符号扩展指令 CBW 和 CWD 三、规律运算和移位指令1、规律运算指令(1)规律与 AND 13 / 46名师归纳总结 - - - - - - -第 13 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术对两个操作数进行按位规律“ 与” 操作;格式: AND dest, src 用途:保留操作数的某几位,清零其他位;例 1:保留 AL 中低 4 位,高 4
35、 位清 0;AND AL,0FH (2)规律或 OR 对两个操作数进行按位规律” 或”操作;格式: OR dest, src 用途:对操作数的某几位置 1;对两操作数进行组合;例 1:把 AL 中的非压缩 BCD 码变成相应十进制数的 ASCII 码;OR AL, 30H (3)规律非 NOT 对操作数进行按位规律”非” 操作;格式: NOT mem/reg 例: NOT CX NOT BYTE PTRDI (4)规律异或 XOR 对两个操作数按位进行” 异或” 操作;格式: XOR dest, src 用途:对 reg 清零 自身异或 把 reg/mem 的某几位变反 与1异或 例 1:把
36、AX寄存器清零;MOV AX,0 XOR AX,AX AND AX,0 SUB AX,AX(5)测试指令 TEST 操作与 AND 指令类似 ,但不将 ”与” 的结果送回 ,只影响标志位;TEST 指令常用于位测试 ,与条件转移指令一起用;例:测试 AL 的内容是否为负数;TEST AL,80H ;检查 AL 中 D7=1?JNZ MINUS ;是 1负数 ,转 MINUS ;否就为正数2、移位指令1非循环移位指令算术左移指令 SALShift Arithmetic Left 14 / 46名师归纳总结 - - - - - - -第 14 页,共 46 页精选学习资料 - - - - - -
37、- - - 微机原理与接口技术算术右移指令 SARShift Arithmetic Right 规律左移指令 SHLShift Left 规律右移指令 SHRShift Right 这 4 条指令的格式相同 ,以 SAL 为例:CL ;移位位数大于 1 时SAL mem/reg 1 ;移位位数等于 1 时. 算术移位 把操作数看做有符号数;规律移位 把操作数看做无符号数;. 移位位数放在CL 寄存器中,假如只移1 位,也可以直接写在指令中;例如:MOV CL,4 ;AL 中的内容右移4 位SHR AL,CL . 影响 C,P,S,Z,O 标志;. 结果未溢出时:左移 1 位操作数 *2 右移
38、1 位操作数 /2例:把 AL 中的数 x 乘 10由于 10=8+2=2 3+21,所以可用移位实现乘 10 操作;程序如下:MOV CL,3 SAL AL,1 ; 2xMOV AH,AL SAL AL,1 ; 4xSAL AL,1 ; 8xADD AL,AH ; 8x+2x = 10x四、掌握转移指令1、 转移指令(1)无条件转移指令 JMP 格式: JMP label 本指令无条件转移到指定的目标地址,以执行从该地址开头的程序段;(2)条件转移指令(补充内容) 依据单个标志位设置的条件转移指令JB/JC ;低于 ,或 CF=1,就转移JNB/JNC/JAE ;高于或等于 ,或 CF=0,
39、就转移JP/JPE ;奇偶标志 PF=1偶,就转移JNP/JPO ;奇偶标志 PF=0奇 ,就转移JZ/JE ;结果为零 ZF=1, 就转移JNZ/JNE ;结果不为零 ZF=0, 就转移JS ;SF=1,就转移JNS ;SF=0,就转移15 / 46名师归纳总结 - - - - - - -第 15 页,共 46 页精选学习资料 - - - - - - - - - 微机原理与接口技术JO ; OF=1,就转移JNO ; OF=0,就转移依据组合条件设置的条件转移指令这类指令主要用来判定两个数的大小;判定无符号数的大小JA 高于就转移条件为 : CF=0ZF=0 ,即 AB JNA/JBE 低于或等于就转移条件为 : CF=1 ZF=1,即 AB JB AB 就转移JNB AB 就转移判定有符号数的大小JG ;大于就转移 A B条件为 : SF OF=0ZF=0 JGE;大于或等于就转移 A B 条件为 : SF OF=0ZF=1 JLE;小于或等于就转移 A B 条件为 : SFOF=1 ZF=1 JL;小于就转移 A B条件为 : SF OF=1ZF=0 2、循环掌握指令用在循环程序中以确定是否要连续循环;循环次数通常置于 CX 中;转移的目标应在距离本指令-128+127 的范畴之内;循环掌握指令不影响标志位;
限制150内