微机原理与接口技术知识点总结整理.docx
精品名师归纳总结微机原理与接口技术复习参考资料第一章概 述一、运算机中的数制1、无符号数的表示方法:( 1)十进制计数的表示法特点:以十为底,逢十进一。 共有 0-9 十个数字符号。( 2)二进制计数表示方法:特点:以 2 为底,逢 2 进位。只有 0 和 1 两个符号。( 3 )十六进制数的表示法:特点:以 16 为底,逢 16 进位。有 0-9 及 A F(表示 1015 )共 16 个数字符号。2、各种数制之间的转换( 1)非十进制数到十进制数的转换按相应进位计数制的权表达式绽开,再按十进制求和。(见书本 1.2.3 , 1.2.4 )( 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二、运算机中的码制1、对于符号数,机器数常用的表示方法有原码、反码和补码三种。数X 的原码记作 X 原, 反码记作 X 反,补码记作 X 补。可编辑资料 - - - 欢迎下载精品名师归纳总结留意:对正数,三种表示法均相同。 它们的差别在于对负数的表示。(1) 原码定义:符号位: 0 表示正, 1 表示负。数值位:真值的肯定值。留意:数 0 的原码不唯独(2) 反码定义:如 X>0,就X 反=X 原如 X<0 , 就X 反= 对应原码的符号位不变,数值部分按位求反留意:数 0 的反码也不唯独(3) 补码定义:如 X>0 , 就X 补= X 反= X 原如 X<0 , 就X 补= X 反+1留意:机器字长为8 时,数 0 的补码唯独,同为00000000 2、8 位二进制的表示范畴:原码: -127+127反码: -127+127补码: -128+1273、特别数 10000000该数在原码中定义为:-0在反码中定义为:-127在补码中定义为:-128对无符号数: 10000000 = 128三、信息的编码1、 十进制数的二进制数编码用 4 位二进制数表示一位十进制数。有两种表示法:压缩BCD 码和非压缩 BCD 码。(1) )压缩 BCD 码的每一位用 4 位二进制表示, 00001001表示 09 ,一个字节表示两位十进制数。(2) )非压缩 BCD 码用一个字节表示一位十进制数,高 4 位总是 0000 ,低 4 位的 00001001表示 09 2、 字符的编码运算机采纳 7 位二进制代码对字符进行编码(1 )数字 09 的编码是 01100000111001,它们的高 3 位均是 011 ,后 4 位正好与其对应的二进制代码( BCD 码)相符。可编辑资料 - - - 欢迎下载精品名师归纳总结(2 )英文字母 AZ 的 ASCII 码从 1000001 (41H )开头次序递增,字母az 的 ASCII 码从 1100001 ( 61H )开头次序递增,这样的排列对信息检索非常有利。其次章微机组成原理第一节、微机的结构1、运算机的经典结构冯. 诺依曼结构(1) 运算机由运算器、掌握器、输入设备和输出设备五大部分组成(运算器和掌握器又称为 CPU)(2) 数据和程序以二进制代码形式不加区分的存放在储备器总,存放位置由的址指定,数制为二进制。(3) 掌握器是依据存放在储备器中的指令序列来操作的,并由一个程序计数器掌握指令的执行。3、 系统总线的分类(1) 数据总线( Data Bus ),它打算了处理器的字长。(2) 的址总线( Address Bus ) , 它打算系统所能直接拜访的储备器空间的容量。(3) 掌握总线( Control Bus)其次节、 8086 微处理器1、8086 是一种单片微处理芯片,其内部数据总线的宽度是16 位,外部数据总线宽度也是16 位,片内包含有掌握运算机全部功能的各种电路。8086 的址总线的宽度为20 位,有 1MB (2 20 )寻址空间。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, DI ) 指令指针( IP)1) 、通用寄存器(1) 8086 含 4 个 16 位数据寄存器,它们又可分为8 个 8 位寄存器,即:AXAH , ALBXBH , BLCXCH ,CLDXDH ,DL常用来存放参加运算的操作数或运算结果(2) )数据寄存器特有的习惯用法AX :累加器。多用于存放中间运算结果。全部I/O 指令必需都通过 AX 与接口传送信息。BX :基址寄存器。在间接寻址中用于存放基的址。CX :计数寄存器。用于在循环或串操作指令中存放循环次数或重复次数。可编辑资料 - - - 欢迎下载精品名师归纳总结DX :数据寄存器。在32 位乘除法运算时,存放高16 位数。在间接寻址的I/O 指令中存放 I/O 端口的址。2) 、指针和变址寄存器SP :堆栈指针寄存器,其内容为栈顶的偏移的址。BP :基址指针寄存器,常用于在拜访内存时存放内存单元的偏移的址。SI:源变址寄存器DI :目标变址寄存器变址寄存器常用于指令的间接寻址或变址寻址。3) 、段寄存器CS :代码段寄存器,代码段用于存放指令代码DS :数据段寄存器ES :附加段寄存器,数据段和附加段用来存放操作数SS :堆栈段寄存器,堆栈段用于存放返回的址,储存寄存器内容,传递参数4)、指令指针( IP )16 位指令指针寄存器,其内容为下一条要执行的指令的偏移的址。5)、标志寄存器(1) 状态标志:进位标志位( CF ):运算结果的最高位有进位或有借位,就CF=1 帮助进位标志位(AF ):运算结果的低四位有进位或借位,就AF=1溢出标志位( OF ):运算结果有溢出,就OF=1零标志位( ZF ):反映指令的执行是否产生一个为零的结果符号标志位( SF ):指出该指令的执行是否产生一个负的结果奇偶标志位( PF ):表示指令运算结果的低8 位“ 1个”数是否为偶数(2) )掌握标志位中断答应标志位(IF ):表示 CPU 是否能够响应外部可屏蔽中断恳求跟踪标志( TF ): CPU 单步执行5、8086 的引脚及其功能(重点把握以下引脚)AD 15 AD0 :双向三态的的址总线,输入/输出信号INTR :可屏蔽中断恳求输入信号,高电平有效。可通过设置IF 的值来掌握。NMI :非屏蔽中断输入信号。不能用软件进行屏蔽。RESET :复位输入信号,高电平有效。复位的初始状态见P21 MN/MX :最小最大模式输入掌握信号。第三章 8086 指令系统第一节 8086 寻址方式一、数据寻址方式1、立刻寻址操作数 为一常数 直接由指令给出此操作数称为立刻数 可编辑资料 - - - 欢迎下载精品名师归纳总结立刻寻址只能用于源操作数例:MOVAX, 1C8FHMOVBYTE PTR2A00H, 8FH错误例:× MOV 2A00H,AX ; 错误!指令操作例: MOV AX ,3102H; AX3102H执行后, AH = 31H , AL = 02H2、寄存器寻址(1) 操作数放在某个寄存器中(2) 源操作数与目的操作数字长要相同(3) 寄存器寻址与段的址无关例:MOVAX, BX MOV3F00H, AX MOVCL, AL错误例:× MOV AX,BL;字长不同× MOV ES:AX,DX;寄存器与段无关3、直接寻址(1) 指令中直接给出操作数的16 位偏移的址偏移的址也称为有效的址EA, Effective Address(2) 默认的段寄存器为DS,但也可以显式的指定其他段寄存器称为段超越前缀(3) 偏移的址也可用符号的址来表示,如ADDR、VAR例:MOVAX ,2A00H MOVDX ,ES:2A00HMOVSI,TABLE_PTR4、间接寻址操作数的偏移的址有效的址 EA放在寄存器中只有 SI、DI 、BX 和 BP 可作间址寄存器例: MOVAX,BXMOVCL,CS:DI错误例 :×MOVAX, DX× MOVCL, AX5、寄存器相对寻址EA= 间址寄存器的内容加上一个8/16 位的位移量例:MOVAX,BX+8MOVCX,TABLESI可编辑资料 - - - 欢迎下载精品名师归纳总结MOVAX,BP;默认段寄存器为 SS指令操作例: MOVAX ,DATABX如DS=6000H, BX=1000H, DATA=2A00H, 63A00H=66H,63A01H=55H就物理的址 = 60000H + 1000H + 2A00H = 63A00H指令执行后: ( AX ) =5566H6、基址变址寻址如操作数的偏移的址:由基址寄存器 BX 或 BP 给出 基址寻址方式由变址寄存器 SI 或 DI 给出 变址寻址方式由一个基址寄存器的内容和一个变址寄存器的内容相加而形成操作数的偏移的址,称为基址 -变址寻址。EA= ( BX )+( SI)或( DI )。 EA= ( BP) +( SI)或( DI )同一组内的寄存器不能同时显现。留意:除了有段跨过前缀的情形外,当基址寄存器为BX 时,操作数应当存放在数据段DS中,当基址寄存器为BP 时,操作数应放在堆栈段SS 中。例: MOVAX,BX SIMOVAX,BX+SI MOVAX,DS: BP DI错误例:×MOVAX,BX BP× MOVAX,DI SI指令操作例: MOVAX , BXSI假定: DS=8000H,BX=2000H,SI=1000H 就物理的址= 80000H + 2000H + 1000H = 83000H 指令执行后 : AL=83000HAH=83001H7、相对基址变址寻址在基址 -变址寻址的基础上再加上一个相对位移量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寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较: 寻址方式指令操作数形式寄存器间接只有一个寄存器(BX/BP/SI/DI之一)寄存器相对一个寄存器加上位移量基址 变址两个不同类别的寄存器可编辑资料 - - - 欢迎下载精品名师归纳总结相对基址 -变址两个不同类别的寄存器加上位移量二、的址寻址方式(明白有4 类,能判定) 简要判定依据(指令中间的单词):段内直接short,near段内间接word段间直接far段间间接dword其次节8086 指令系统一、数据传送指令1、通用传送指令(1) MOV dest , src。 dest src传送的是字节仍是字取决于指令中涉及的寄存器是8 位仍是 16 位。具体来说可实现: MOVmem/reg1 , mem/reg2指令中两操作数中至少有一个为寄存器 MOVreg,data;立刻数送寄存器 MOVmem,data; 立刻数送储备单元 MOVacc, mem;储备单元送累加器 MOVmem,acc;累加器送储备单元 MOVsegreg,mem/reg ; 储备单元 /寄存器送段寄存器 MOVmem/reg, segreg ;段寄存器送储备单元 /寄存器MOV指令的使用规章IP 不能作目的寄存器不答应 mem mem不答应 segreg segreg立刻数不答应作为目的操作数不答应 segreg立刻数源操作数与目的操作数类型要一样当源操作数为单字节的立刻数,而目的操作数为间址、变址、基址+变址的内存数时,必需用 PTR 说明数据类型。如: MOV BX,12H是错误的。(2) 、堆栈指令什么是堆栈?按 “后进先出 LIFO ”方式工作的储备区域。堆栈以字为单位进行压入弹出操作。规定由 SS 指示堆栈段的段基址,堆栈指针SP 始终指向堆栈的顶部, SP 的初值规定了所用堆栈区的大小。堆栈的最高的址叫栈底。 压栈指令 PUSHPUSHsrc; src 为 16 位操作数可编辑资料 - - - 欢迎下载精品名师归纳总结例: PUSHAX。将 AX 内容压栈执行操作:( SP) -1高字节 AH(SP) -2低字节 ALSP( SP) - 2留意进栈方向是高的址向低的址进展。 弹出指令 POP POPdest例: POPBX。将栈顶内容弹至BX执行操作:( BL )( SP)( BH )( SP)+1( SP)( SP) +2堆栈指令在使用时需留意的几点: 堆栈操作总是按字进行 不能从栈顶弹出一个字给CS 堆栈指针为 SS:SP, SP 永久指向栈顶SP 自动进行增减量(-2, +2 )(3) 、交换指令 XCHG格式: XCHGreg, mem/reg功能:交换两操作数的内容。要求:两操作数中必需有一个在寄存器中。 操作数不能为段寄存器和立刻数。源和目的操作数类型要一样。举例:XCHGAX , BXXCHG2000 ,CL(4) 查表指令 XLAT执行的操作: AL BX+AL又叫查表转换指令,它可依据表项序号查出表中对应代码的内容。执行时先将表的首的址(偏移的址)送到BX 中,表项序号存于AL 中。2、输入输出指令只限于用累加器 AL 或 AX 来传送信息。功能 : 累加器 I/O 端口( 1) 输入指令 IN格式 :IN acc,PORT ;PORT 端口号 0 255HIN acc,DX;DX 表示的端口范畴达64K例:IN AL , 80H;AL 80H 端口 IN AL ,DX;AL DX可编辑资料 - - - 欢迎下载精品名师归纳总结(2) 输出指令 OUT格式: OUTport,accOUTDX,acc例: OUT 68H , AX;69H , 68H ( AX )OUT DX , AL;DX AL在使用间接寻址的IN/OUT 指令时,要事先用传送指令把I/O 端口号设置到 DX 寄存器如:MOVDX , 220HINAL , DX; 将 220H 端口内容读入AL3、目标的址传送指令(1) LEA传送偏移的址格式: LEA reg , mem; 将指定内存单元的偏移的址送到指定寄存器要求:1) 源操作数 必需是一个 储备器操作数。2) 目的操作数必需是一个16 位的通用寄存器。例: LEABX , SI+10H设:( SI) =1000H就执行该指令后, (BX ) =1010H留意以下二条指令差别:LEA BX , BUFFER MOV BX , BUFFER前者表示将符号的址为BUFFER 的储备单元的偏移的址取到BX 中;后者表示将 BUFFER 存储单元中的内容取到BX 中。下面两条指令等效:LEA BX , BUFFERMOV BX, OFFSET BUFFER其中 OFFSET BUFFER表示储备器单元 BUFFER 的偏移的址。二者都可用于取储备器单元的偏移的址,但LEA指令可以取动态的的址,OFFSET 只能取静态的的址。二、算术运算指令1、 加法指令(1) 不带进位的加法指令ADD格式:ADDacc,dataADDmem/reg,data ADDmem/reg1,mem/reg2实例:可编辑资料 - - - 欢迎下载精品名师归纳总结ADDAL , 30HADDSI, BX+20HADDCX , SIADDDI , 200H.ADD 指令对 6 个状态标志均产生影响。例:已知 BX=D75FH指令 ADDBX,8046H执行后,状态标志各是多少?D75FH = 1110 0111 0101 11118046H = 1000 0000 0100 011011 11 110110 0111 1010 0101结果: C=1, Z=0, P=0, A=1, O=1, S=0判定溢出与进位从硬件的角度: 默认参加运算的操作数都是有符号数,当两数的符号位相同, 而和的结果相异时有溢出,就 OF=1,否就 OF=0(2) 带进位的加法ADCADC 指令在形式上和功能上与ADD 类似,只是相加时仍要包括进位标志CF 的内容,例如:ADCAL , 68H ;AL AL+68H+CF ADCAX , CX;AX AX+CX+CFADCBX , DI;BX BX+DI+1DI+CF(3) 加 1 指令 INC格式: INCreg/mem功能:类似于C 语言中的 + 操作:对指定的操作数加1例:INCALINCSIINCBYTE PTRBX+4注:本指令不影响 CF 标志。(4) 非压缩 BCD 码加法调整指令 AAA AAA指令的操作:假如 AL 的低 4 位 9 或 AF=1 ,就: AL AL+6,AH AH+1,AF 1 AL 高 4 位清零 CF AF否就 AL 高 4 位清零(5) 压缩 BCD 码加法调整指令 DAA两个压缩 BCD 码相加结果在AL 中,通过 DAA 调整得到一个正确的压缩BCD 码. 指令操作 调整方法 :如 AL 的低 4 位 9 或 AF=1可编辑资料 - - - 欢迎下载精品名师归纳总结就AL AL+6 , AF 1如 AL 的高 4 位 9 或 CF=1就AL AL+60H , CF 1除 OF 外, DAA 指令影响全部其它标志。DAA 指令应紧跟在 ADD 或 ADC 指令之后。2、 减法指令(1) 不考虑借位的减法指令SUB格式: SUB dest, src操作: dest dest-src注: 1. 源和目的操作数不能同时为储备器操作数2. 立刻数不能作为目的操作数指令例子:SUB AL, 60HSUB BX+20H , DX SUB AX, CX(2) 考虑借位的减法指令SBB SBB指令主要用于多字节的减法。格式: SBB dest, src操作: dest dest-src-CF指令例子:SBB AX, CXSBB WORD PTRSI, 2080H SBB SI,DX(3) 减 1 指令 DEC作用类似于 C 语言中的”操作符。格式: DEC opr操作: opr opr-1指令例子:DEC CLDEC BYTE PTRDI+2 DEC SI(4) 求补指令 NEG格式: NEGopr操作: opr 0-opr对一个操作数取补码相当于用0 减去此操作数,故利用NEG 指令可得到负数的肯定值。例:如 AL=0FCH ,就执行NEG AL 后,AL=04H , CF=1(5) 比较指令 CMP格式: CMPdest, src操作: dest-src可编辑资料 - - - 欢迎下载精品名师归纳总结CMP 也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。指令例子:CMPAL , 0AH CMPCX , SI CMPDI , 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, 就:AL AL-6,且 AF 1如 AL 的高 4 位 9 或 CF=1,就: AL AL-60H ,且 CF 1DAS对 OF无定义 , 但影响其余标志位。DAS指令要求跟在减法指令之后。3、 乘法指令进行乘法时: 8 位*8 位 16 位乘积16 位*16 位 32 位乘积1无符号数的乘法指令MULMEM/REG格式: MULsrc操作:字节操作数AX AL× src字操作数DX, AX AX × src指令例子:MUL BL。 AL × BL, 乘积在 AX中MUL CX。 AX × CX, 乘积在 DX,AX中MUL BYTE PTRBX(2)有符号数乘法指令IMUL格式与 MUL 指令类似,只是要求两操作数均为有符号数 。指令例子:IMULBL。 AX AL ×BL IMULWORD PTRSI 。 DX,AX AX ×SI+1SI可编辑资料 - - - 欢迎下载精品名师归纳总结留意: MUL/IMUL指令中 ALAX 为隐含的乘数寄存器。 AXDX,AX 为隐含的乘积寄存器。 SRC 不能为立刻数。 除 CF 和 OF外,对其它标志位无定义。4、除法指令进行除法时: 16 位/8 位 8 位商32 位/16 位 16 位商对被除数、商及余数存放有如下规定:被除数商余数字节除法AXALAH字除法DX:AXAXDX(1) 无符号数除法指令DIV格式: DIVsrc操作:字节操作AL AX / SRC的商AHAX / SRC的余数字操作AX DX, AX / SRC的商DX DX, AX / SRC的余数指令例子:DIV CLDIV WORD PTRBX(2) 有符号数除法指令IDIV格式: IDIVsrc操作与 DIV 类似。商及余数均为有符号数,且余数符号总是与被除数符号相同。留意 : 对于 DIV/IDIV指令AXDX,AX为隐含的被除数寄存器。ALAX 为隐含的商寄存器。AHDX 为隐含的余数寄存器。src 不能为立刻数。对全部条件标志位均无定关于除法操作中的字长扩展问题.除法运算要求被除数字长是除数字长的两倍,如不满意就需 对被除数进行扩展 ,否就产生错误。.对于无符号数除法扩展,只需将AH 或 DX 清零即可。.对有符号数而言 ,就是符号位的扩展。可使用前面介绍过的符号扩展指令CBW 和 CWD三、规律运算和移位指令1、规律运算指令(1) 规律与 AND可编辑资料 - - - 欢迎下载精品名师归纳总结对两个操作数进行按位规律“与”操作。格式: ANDdest, src用途:保留操作数的某几位,清零其他位。例 1:保留 AL 中低 4 位,高 4 位清 0。AND AL,0FH(2) 规律或 OR对两个操作数进行按位规律”或”操作。格式: ORdest, src用途:对操作数的某几位置1。对两操作数进行组合。例 1:把 AL 中的非压缩 BCD 码变成相应十进制数的ASCII 码。ORAL, 30H(3) 规律非 NOT对操作数进行按位规律”非”操作。格式: NOTmem/reg例: NOTCXNOTBYTE PTRDI(4) 规律异或 XOR对两个操作数按位进行”异或”操作。格式: XOR dest, src用途:对 reg 清零 自身异或 把 reg/mem 的某几位变反 与 1异或 例 1:把 AX寄存器清零。 MOV AX,0 XOR AX,AX AND AX,0 SUB AX,AX(5) 测试指令 TEST操作与 AND 指令类似 ,但不将 ”与”的结果送回 ,只影响标志位。TEST 指令常用于位测试,与条件转移指令一起用。例:测试 AL 的内容是否为负数。TESTAL,80H。检查 AL 中 D7=1? JNZMINUS。是 1负数 ,转 MINUS 。否就为正数2、移位指令1 非循环移位指令算术左移指令SALShift Arithmetic Left可编辑资料 - - - 欢迎下载精品名师归纳总结算术右移指令SARShift Arithmetic Right规律左移指令SHLShift Left规律右移指令SHRShift Right这 4 条指令的格式相同,以 SAL 为例:CL;移位位数大于 1 时SALmem/reg1;移位位数等于 1 时算术移位 把操作数看做有符号数。 规律移位 把操作数看做无符号数。移位位数放在 CL 寄存器中,假如只移1 位,也可以直接写在指令中。例如:MOVCL,4SHRAL,CL。AL 中的内容右移 4 位影响 C,P,S,Z,O 标志。结果未溢出时:左移 1 位操作数 *2右移 1 位操作数 /2例:把 AL 中的数 x 乘 10由于 10=8+2=2 3+2 1,所以可用移位实现乘10 操作。程序如下:MOVCL,3SALAL,1; 2xMOVAH,ALSALAL,1; 4xSALAL,1; 8xADDAL,AH; 8x+2x = 10 x四、掌握转移指令1、 转移指令(1) 无条件转移指令JMP格式: JMP label本指令无条件转移到指定的目标的址,以执行从该的址开头的程序段。(2) 条件转移指令(补充内容) 依据单个标志位设置的条件转移指令JB/JC。低于 ,或 CF=1, 就转移JNB/JNC/JAE。高于或等于 ,或 CF=0, 就转移JP/JPE。奇偶标志 PF=1 偶, 就转移JNP/JPO。奇偶标志 PF=0 奇 ,就转移JZ/JE。结果为零 ZF=1, 就转移JNZ/JNE。结果不为零 ZF=0, 就转移JS。 SF=1,就转移JNS。SF=0, 就转移可编辑资料 - - - 欢迎下载精品名师归纳总结JO。 OF=1,就转移JNO。 OF=0,就转移依据组合条件设置的条件转移指令 这类指令主要用来判定两个数的大小。判定无符号数的大小JA高于就转移条件为 : CF=0 ZF=0 ,即 A B JNA/JBE低于或等于就转移条件为 : CF=1 ZF=1 ,即 A B JBA<B 就转移JNBA B 就转移判定有符号数的大小JG 。大于就转移 A B条件为 : SF OF=0 ZF=0JGE。大于或等于就转移 A B条件为 : SF OF=0 ZF=1JLE。小于或等于就转移 A B条件为 : SF OF=1 ZF=1JL。小于就转移 A B条件为 : SF OF=1 ZF=02、循环掌握指令用在循环程序中以确定是否要连续循环。循环次数通常置于CX 中。转移的目标应在距离本指令-128 +127 的范畴之内。循环掌握指令不影响标志位。1LOOP格式: LOOPlabel操作: CX-1 CX 。如CX 0,就转至 label 处执行 。否就退出循环 ,执行 LOOP 后面的指令。LOOP 指令与下面的指令段等价:DECCXJNZlabel3、过程调用指令(1)调用指令 CALL一般格式: CALLsub;sub 为子程序的入口4、中断指令1INT n执行类型 n 的中断服务程序,N=0 255可编辑资料 - - - 欢迎下载精品名师归纳总结五、处理器掌握指令1、标志位操作(1) CF 设置指令CLC0 CFSTC1 CFCMCCF 变反(2) DF 设置指令CLD0 DF 串操作的指针移动方向从低到高 STD1 DF 串操作的指针移动方向从高到低(3) IF 设置指令CLI0 IF 禁止 INTR 中断 STI1 IF 开放 INTR 中断 2、 HLT ( halt)执行 HLT 指令后, CPU 进入暂停状态。第四章 8086 汇编语言程序设计第一节 伪指令CPU 指令与伪指令之间的区分:(1) CPU 指令是给 CPU 的命令,在运行时由CPU 执行,每条指令对应CPU 的一种特定的操作。而伪指令是给汇编程序的命令,在汇编过程中由汇编程序进行处理。(2) 汇编以后, 每条 CPU 指令产生一一对应的目标代码。而伪指令就不产生与之相应的目标代码。1、数据定义伪指令(1) 数据定义伪指令的一般格式为: 变量名 伪指令 操作数 ,操作数 DB用来定义字节(BYTE ) DW用来定义字( WORD ) DD用来定义双字(DWORD )(2) 操作数的类型可以是:常数或常数表达式例如:DATA_BYTEDB 10,5,10H DATA_WORDDW 100H,100,-4 DATA_DWDD 2*30,0FFFBH可以为字符串(定义字符串最好使用DB )例如: char1 DB AB 可以为变量可以为?号操作符例如: XDB5,?, 6?号只是为了给变量保留相应的储备单元,而不给予变量某个确定的初值。重复次数: N DUP (初值 ,初值 )例如: ZERO DB 2 DUP( 3, 5)XYZDB 2DUP (0, 2 DUP ( 1 , 3), 5 )在伪操作的操作数字段中如使用$,就表示的是的址计数器的当前值。可编辑资料 - - - 欢迎下载精品名师归纳总结2、补充内容:(1)类型PTR的址表达式例如: MOV BYTE PTR BX, 12H INC BYTEPTR BX留意:单操作数指令,当操作数为基址、变址、基+变的时候必需定义3、符号定义伪指令1 EQU格式:名字EQU表达式EQU 伪指令将表达式的值给予一个名字,以后可用这个名字来代替上述表达式。例: CONSTANTEQU100NEW_PORTEQUPORT_VAL+12=(等号)与 EQU 类似,但答应重新定义例:EMP=7。值为 7EMP=EMP+1。值为 83 LABELLABEL 伪指令的用途是定义标号或变量的类型格式:名字LABEL类型变量的类型可以是BYTE , WORD , DWORD 。标号的类型可以是NEAR 或 FAR可编辑资料 -