(完整版)河北省专接本(微机原理与接口技术知识点总结)资料,推荐文档

上传人:good****022 文档编号:116366268 上传时间:2022-07-05 格式:DOCX 页数:11 大小:137.02KB
收藏 版权申诉 举报 下载
(完整版)河北省专接本(微机原理与接口技术知识点总结)资料,推荐文档_第1页
第1页 / 共11页
(完整版)河北省专接本(微机原理与接口技术知识点总结)资料,推荐文档_第2页
第2页 / 共11页
(完整版)河北省专接本(微机原理与接口技术知识点总结)资料,推荐文档_第3页
第3页 / 共11页
资源描述:

《(完整版)河北省专接本(微机原理与接口技术知识点总结)资料,推荐文档》由会员分享,可在线阅读,更多相关《(完整版)河北省专接本(微机原理与接口技术知识点总结)资料,推荐文档(11页珍藏版)》请在装配图网上搜索。

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) 十进制数制转换为二进制数制l 十进制 二进制的转换: 整数部分:除 2 取余;小数部分:乘 2 取整。

2、l 十进制 十六进制的转换: 整数部分:除 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原,反码记

3、作X反,补码记作X补。注意:对正数,三种表示法均相同。它们的差别在于对负数的表示。(1) 原码定义:符号位:0 表示正,1 表示负; 数值位:真值的绝对值。注意:数 0 的原码不唯一(2) 反码定义:若 X0 ,则 X反=X原若 X0, 则X补= X反= X原若 X0, 则X补= X反+1注意:机器字长为 8 时,数 0 的补码唯一,同为000000002、8 位二进制的表示范围: 原码:-127+127反码:-127+127 补码:-128+1273、特殊数 10000000l 该数在原码中定义为: -0l 在反码中定义为: -127l 在补码中定义为: -128l 对无符号数:(10000

4、000) = 128三、信息的编码1、 十进制数的二进制数编码用 4 位二进制数表示一位十进制数。有两种表示法: 压缩 BCD 码和非压缩 BCD 码。(1) 压缩 BCD 码的每一位用 4 位二进制表示, 00001001 表示 09,一个字节表示两位十进制数。(2) 非压缩 BCD 码用一个字节表示一位十进制数,高4 位总是 0000,低 4 位的 00001001 表示 092、 字符的编码计算机采用 7 位二进制代码对字符进行编码(1)数字 09 的编码是 01100000111001,它们的高3 位均是 011,后 4 位正好与其对应的二进制代码(BCD 码)相符。(2) 英文字母

5、AZ 的 ASCII 码从 1000001(41H)开10 / 10始顺序递增,字母 az 的 ASCII 码从 1100001(61H) 开始顺序递增,这样的排列对信息检索十分有利。第二章微机组成原理第一节、微机的结构1、计算机的经典结构冯.诺依曼结构(1) 计算机由运算器、控制器、输入设备和输出设备五大部分组成(运算器和控制器又称为 CPU)(2) 数据和程序以二进制代码形式不加区分地存放在存储器总,存放位置由地址指定,数制为二进制。(3) 控制器是根据存放在存储器中的指令序列来操作的, 并由一个程序计数器控制指令的执行。3、 系统总线的分类(1) 数据总线(Data Bus),它决定了处

6、理器的字长。(2) 地址总线(Address Bus),它决定系统所能直接访问的存储器空间的容量。(3) 控制总线(Control Bus)第二节、8086 微处理器1、8086 是一种单片微处理芯片,其内部数据总线的宽度是 16 位,外部数据总线宽度也是 16 位,片内包含有控制计算机所有功能的各种电路。8086 地址总线的宽度为 20 位,有 1MB(220)寻址空间。2、8086CPU 由总线接口部件 BIU 和执行部件 EU 组成。BIU 和 EU 的操作是异步的,为8086 取指令和执行指令的并行操作体统硬件支持。3、8086 处理器的启动4、寄存器结构8086 微处理器包含有 13

7、 个 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 位寄存器,即:l AX AH,ALl BXBH,BLl CXCH,CLl DXDH,DL常用来存放参与运算的操作数或运算结果(2)数据寄存器特有的习惯用法l AX:累加器。多用于存放中间运算结果。所有 I/O 指令必须都通过 AX 与接口传送信息;l BX:基址寄存器。在间接寻址中用于存放基地址;l CX:计数寄存器。用于

8、在循环或串操作指令中存放循环次数或重复次数;l DX:数据寄存器。在 32 位乘除法运算时,存放高 16 位数;在间接寻址的 I/O 指令中存放 I/O 端口地址。2)、指针和变址寄存器l SP:堆栈指针寄存器,其内容为栈顶的偏移地址;l BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。l SI:源变址寄存器l DI:目标变址寄存器变址寄存器常用于指令的间接寻址或变址寻址。3)、段寄存器 CS:代码段寄存器,代码段用于存放指令代码DS:数据段寄存器ES:附加段寄存器,数据段和附加段用来存放操作数SS:堆栈段寄存器,堆栈段用于存放返回地址,保存寄存器内容,传递参数) 、指令指针(

9、IP)16 位指令指针寄存器,其内容为下一条要执行的指令的偏移地址。) 、标志寄存器(1) 状态标志:l 进位标志位(CF):运算结果的最高位有进位或有借位,则 CF=1l 辅助进位标志位(AF):运算结果的低四位有进位或借位,则 AF=1l 溢出标志位(OF):运算结果有溢出,则 OF=1l 零标志位(ZF):反映指令的执行是否产生一个为零的结果l 符号标志位(SF):指出该指令的执行是否产生一个负的结果l 奇偶标志位(PF):表示指令运算结果的低 8 位“1”个数是否为偶数(2) 控制标志位l 中断允许标志位(IF):表示 CPU 是否能够响应外部可屏蔽中断请求l 跟踪标志(TF):CPU

10、 单步执行5、8086 的引脚及其功能(重点掌握以下引脚)l AD15AD0:双向三态的地址总线,输入/输出信号l INTR:可屏蔽中断请求输入信号,高电平有效。可通过设置 IF 的值来控制。l NMI:非屏蔽中断输入信号。不能用软件进行屏蔽。l RESET:复位输入信号,高电平有效。复位的初始状态见 P21l MN/MX:最小最大模式输入控制信号。第三章 8086 指令系统第一节8086 寻址方式一、数据寻址方式1、立即寻址操作数(为一常数)直接由指令给出(此操作数称为立即数) 立即寻址只能用于源操作数例:MOVAX, 1C8FHMOVBYTE PTR2A00H, 8FH错误例: MOV 2

11、A00H,AX ; 错误!指令操作例:MOV AX,3102H; AX3102H执行后,(AH) = 31H,(AL) = 02H2、寄存器寻址(1) 操作数放在某个寄存器中(2) 源操作数与目的操作数字长要相同(3) 寄存器寻址与段地址无关例:MOVAX, BXMOV3F00H, AXMOVCL, AL错误例: MOV AX,BL; 字长不同 MOV ES:AX,DX; 寄存器与段无关3、直接寻址(1) 指令中直接给出操作数的 16 位偏移地址偏移地址也称为有效地址(EA, Effective Address)(2) 默认的段寄存器为 DS,但也可以显式地指定其他段寄存器称为段超越前缀(3)

12、 偏移地址也可用符号地址来表示,如 ADDR、VAR例:MOVAX ,2A00H MOVDX ,ES:2A00HMOVSI,TABLE_PTR4、间接寻址l 操作数的偏移地址(有效地址 EA)放在寄存器中l 只有 SI、DI、BX 和 BP 可作间址寄存器l 例 : MOV AX,BXMOV CL,CS:DI错误例 : MOVAX, DX MOVCL, AX5、寄存器相对寻址l EA=间址寄存器的内容加上一个 8/16 位的位移量l 例: MOVAX, BX+8MOVCX, TABLESIMOVAX, BP; 默认段寄存器为 SSl 指令操作例:MOV AX,DATABX若(DS)=6000H

13、, (BX)=1000H, DATA=2A00H, (63A00H)=66H, (63A01H)=55H则物理地址 = 60000H + 1000H + 2A00H = 63A00H指令执行后:(AX)=5566H 6、基址变址寻址l 若操作数的偏移地址:由基址寄存器(BX 或 BP)给出 基址寻址方式由变址寄存器(SI 或 DI)给出 变址寻址方式由一个基址寄存器的内容和一个变址寄存器的内容相加而形成操作数的偏移地址,称为基址-变址寻址。EA=(BX)+(SI)或(DI); EA=(BP)+(SI)或(DI)同一组内的寄存器不能同时出现。注意:除了有段跨越前缀的情况外,当基址寄存器为BX 时

14、,操作数应该存放在数据段 DS 中,当基址寄存器为 BP 时,操作数应放在堆栈段 SS 中。例:MOVAX, BX SI MOVAX, BX+SI MOVAX, DS: BP DI错误例: MOVAX, BX BP MOVAX, DI SI指令操作例:MOV AX,BXSI假 定 :(DS)=8000H, (BX)=2000H, SI=1000H 则物理地址 = 80000H + 2000H + 1000H = 83000H 指令执行后: (AL)=83000H(AH)=83001H7、相对基址变址寻址l 在基址-变址寻址的基础上再加上一个相对位移量EA=(BX)+(SI)或(DI)+8 位或

15、 16 位位移量;EA=(BP)+(SI)或(DI)+8 位或 16 位位移量指令操作例:MOV AX,DATADIBX若(DS)=8000H,(BX)=2000H,(DI)=1000H,DATA=200H则指令执行后(AH)=83021H, (AL)=83020H寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较:寻址方式指令操作数形式n 寄存器间接只有一个寄存器(BX/BP/SI/DI 之一)n 寄存器相对一个寄存器加上位移量n 基址变址两个不同类别的寄存器n 相对基址-变址两个不同类别的寄存器加上位移量二、地址寻址方式(了解有 4 类,能判断)简要判断依据(指令中间的单词)

16、: 段内直接 short,near段内间接 word段间直接 far段间间接 dword第二节8086 指令系统一、数据传送指令1、通用传送指令(1) MOV dest,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 ;存储单元/寄存器送段寄存器 MO

17、V mem/reg,segreg ;段寄存器送存储单元/寄存器MOV 指令的使用规则IP 不能作目的寄存器不允许 memmem不允许 segregsegreg立即数不允许作为目的操作数不允许 segreg立即数源操作数与目的操作数类型要一致当源操作数为单字节的立即数,而目的操作数为间址、变址、基址+变址的内存数时,必须用 PTR 说明数据类型。如:MOV BX,12H 是错误的。()、堆栈指令什么是堆栈?按“后进先出(LIFO)”方式工作的存储区域。堆栈以字为单位进行压入弹出操作。规定由 SS 指示堆栈段的段基址,堆栈指针 SP 始终指向堆栈的顶部,SP 的初值规定了所用堆栈区的大小。堆栈的最

18、高地址叫栈底。 压栈指令 PUSHPUSHsrc; src 为 16 位操作数例:PUSH AX ;将 AX 内容压栈执行操作:(SP)-1高字节 AH(SP)-2低字节 AL(SP)(SP)- 2注意进栈方向是高地址向低地址发展。 弹出指令 POP POPdest例:POPBX ;将栈顶内容弹至 BX执行操作:(BL)(SP)(BH)(SP)+1(SP)(SP)+2堆栈指令在使用时需注意的几点: 堆栈操作总是按字进行 不能从栈顶弹出一个字给 CS 堆栈指针为 SS:SP,SP 永远指向栈顶SP 自动进行增减量(-2,+2)()、交换指令 XCHG格式:XCHG reg,mem/reg功能:交

19、换两操作数的内容。要求:两操作数中必须有一个在寄存器中; 操作数不能为段寄存器和立即数;源和目地操作数类型要一致。举例: XCHG AX,BXXCHG 2000,CL()查表指令 XLAT执行的操作:AL(BX)+(AL)又叫查表转换指令,它可根据表项序号查出表中对应代码的内容。执行时先将表的首地址(偏移地址)送到 BX 中,表项序号存于 AL 中。2、输入输出指令只限于用累加器 AL 或 AX 来传送信息。功能: (累加器)I/O 端口(1) 输入指令 IN格式:IN acc,PORT ;PORT 端口号 0255HIN acc,DX;DX 表示的端口范围达 64K例:IN AL,80H ;

20、(AL)(80H 端口) IN AL,DX;(AL)(DX)(2) 输出指令 OUT格式:OUT port,accOUT DX,acc例 :OUT 68H,AX ;(69H,68H)(AX) OUT DX,AL;(DX)(AL)在使用间接寻址的 IN/OUT 指令时,要事先用传送指令把 I/O 端口号设置到 DX 寄存器如:MOV DX,220HINAL,DX;将 220H 端口内容读入 AL3、目标地址传送指令(1) LEA传送偏移地址格式:LEA reg,mem; 将指定内存单元的偏移地址送到指定寄存器要求:1) 源操作数必须是一个存储器操作数;2) 目的操作数必须是一个 16 位的通用寄

21、存器。例:LEABX,SI+10H设:(SI)=1000H则执行该指令后,(BX)=1010Hl 注意以下二条指令差别:LEA BX,BUFFER MOV BX,BUFFER前者表示将符号地址为 BUFFER 的存储单元的偏移地址取到BX 中;后者表示将 BUFFER 存储单元中的内容取到 BX 中。下面两条指令等效:LEA BX,BUFFERMOV BX, OFFSET BUFFER其中 OFFSET BUFFER 表示存储器单元 BUFFER 的偏移地址。二者都可用于取存储器单元的偏移地址,但 LEA 指令可以取动态的地址,OFFSET 只能取静态的地址。二、算术运算指令1、 加法指令(1

22、) 不带进位的加法指令 ADD格式: ADDacc,dataADDmem/reg,data ADD mem/reg1,mem/reg2实例:ADDAL,30H ADDSI,BX+20H ADDCX,SIADDDI,200H ADD 指令对 6 个状态标志均产生影响。例:已知(BX)=D75FH指令 ADD BX,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判断溢出与进位从硬件的

23、角度:默认参与运算的操作数都是有符号数, 当两数的符号位相同,而和的结果相异时有溢出,则OF=1,否则 OF=0(2) 带进位的加法 ADCADC 指令在形式上和功能上与 ADD 类似,只是相加时还要包括进位标志 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功能:类似于 C 语言中的+操作:对指定的操作数加 1例 : INC ALINC SIINC BYTE PTRBX+4注:本指令不影响 CF

24、 标志。(4) 非压缩 BCD 码加法调整指令 AAAAAA 指令的操作:如果 AL 的低 4 位9 或 AF=1,则: AL(AL)+6,(AH)(AH)+1,AF1 AL 高 4 位清零 CFAF否则 AL 高 4 位清零(5) 压缩 BCD 码加法调整指令 DAAl 两个压缩 BCD 码相加结果在 AL 中,通过 DAA 调整得到一个正确的压缩 BCD 码.l 指令操作(调整方法):若 AL 的低 4 位9 或 AF=1则(AL)(AL)+6,AF1若 AL 的高 4 位9 或 CF=1则(AL)(AL)+60H,CF1l 除 OF 外,DAA 指令影响所有其它标志。l DAA 指令应紧

25、跟在 ADD 或 ADC 指令之后。2、 减法指令(1) 不考虑借位的减法指令 SUB格式: SUB dest, src操作: dest(dest)-(src)注:1.源和目的操作数不能同时为存储器操作数2.立即数不能作为目的操作数指令例子:SUB AL,60HSUB BX+20H,DX SUB AX,CX(2) 考虑借位的减法指令 SBBSBB 指令主要用于多字节的减法。格式: SBB dest, src操作: dest(dest)-(src)-(CF)指令例子:SBB AX,CXSBB WORD PTRSI,2080HSBB SI,DX(3) 减 1 指令 DEC作用类似于 C 语言中的”

26、操作符。格式:DEC opr操作:opr(opr)-1指令例子:DEC CLDEC BYTE PTRDI+2 DEC SI(4) 求补指令 NEG格式: NEG opr操作: opr 0-(opr)对一个操作数取补码相当于用 0 减去此操作数,故利用 NEG 指令可得到负数的绝对值。例:若(AL)=0FCH,则执行 NEG AL 后, (AL)=04H,CF=1(5) 比较指令 CMP格式: CMP dest, src操作: (dest)-(src)CMP 也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。指令例子:CMP AL,0AH CMP CX,SICMP DI,BX

27、+03(6) 非压缩 BCD 码减法调整指令 AAS对 AL 中由两个非压缩的 BCD 码相减的结果进行调整。调整操作为:若 AL 的低 4 位9 或 AF=1,则: AL(AL)-6,AH(AH)-1,AF1 AL 的高 4 位清零 CFAF否则:AL 的高 4 位清零(7) 压缩 BCD 码减法调整指令 DAS对 AL 中由两个压缩 BCD 码相减的结果进行调整。调整操作为:若 AL 的低 4 位9 或 AF=1,则: AL(AL)-6, 且 AF1若 AL 的高 4 位9 或 CF=1,则: AL(AL)-60H,且 CF1DAS 对 OF 无定义,但影响其余标志位。DAS 指令要求跟在

28、减法指令之后。3、 乘法指令进行乘法时:8 位*8 位16 位乘积16 位*16 位32 位乘积(1) 无符号数的乘法指令 MUL(MEM/REG)格 式 : MUL src操作:字节操作数 (AX)(AL) (src)字操作数(DX, AX)(AX) (src)指令例子:MUL BL;(AL)(BL),乘积在 AX 中MUL CX;(AX)(CX),乘积在 DX,AX 中MUL BYTE PTRBX(2)有符号数乘法指令 IMUL格式与 MUL 指令类似,只是要求两操作数均为有符号数。指令例子:IMUL BL;(AX)(AL)(BL) IMUL WORD PTRSI; (DX,AX)(AX)

29、(SI+1SI)注意:MUL/IMUL 指令中 AL(AX)为隐含的乘数寄存器; AX(DX,AX)为隐含的乘积寄存器; SRC 不能为立即数; 除 CF 和 OF 外,对其它标志位无定义。4、除法指令进行除法时:16 位/8 位8 位商32 位/16 位16 位商对被除数、商及余数存放有如下规定:被除数商余数字节除法AXALAH字除法DX:AXAXDX(1) 无符号数除法指令 DIV格式: DIVsrc操作:字节操作 (AL)(AX) / (SRC) 的商(AH)(AX) / (SRC) 的余数字操作(AX) (DX, AX) / (SRC) 的商(DX) (DX, AX) / (SRC)

30、的余数指令例子:DIV CLDIV WORD PTRBX(2) 有符号数除法指令 IDIV格式: IDIVsrc操作与 DIV 类似。商及余数均为有符号数,且余数符号总是与被除数符号相同。注意: 对于 DIV/IDIV 指令AX(DX,AX)为隐含的被除数寄存器。AL(AX) 为 隐 含 的 商 寄 存 器 。AH(DX)为隐含的余数寄存器。src 不能为立即数。对所有条件标志位均无定关于除法操作中的字长扩展问题 除法运算要求被除数字长是除数字长的两倍,若不满足则需对被除数进行扩展,否则产生错误。 对于无符号数除法扩展,只需将 AH 或 DX 清零即可。 对有符号数而言,则是符号位的扩展。可使

31、用前面介绍过的符号扩展指令 CBW 和 CWD三、逻辑运算和移位指令1、逻辑运算指令(1) 逻辑与 AND对两个操作数进行按位逻辑“与”操作。格式:ANDdest, src用途:保留操作数的某几位,清零其他位。例 1:保留 AL 中低 4 位,高 4 位清0。AND AL,0FH(2) 逻辑或 OR对两个操作数进行按位逻辑”或”操作。格式:OR dest, src用途:对操作数的某几位置 1;对两操作数进行组合。例 1:把 AL 中的非压缩 BCD 码变成相应十进制数的ASCII 码。OR AL, 30H(3) 逻辑非 NOT对操作数进行按位逻辑”非”操作。格式:NOT mem/reg例 :N

32、OT CXNOT BYTE PTRDI(4) 逻辑异或 XOR对两个操作数按位进行”异或”操作。格式:XOR dest, src用途:对 reg 清零(自身异或)把 reg/mem 的某几位变反(与1异或)例 1:把 AX 寄存器清零。MOV AX,0XOR AX,AXAND AX,0SUB AX,AX(5) 测试指令 TEST操作与 AND 指令类似,但不将”与”的结果送回,只影响标志位。TEST 指令常用于位测试,与条件转移指令一起用。例:测试 AL 的内容是否为负数。TEST AL,80H ; 检 查 AL 中 D7=1? JNZMINUS;是 1(负数),转 MINUS ;否则为正数2

33、、移位指令(1)非循环移位指令算术左移指令 SAL(Shift Arithmetic Left) 算术右移指令 SAR(Shift Arithmetic Right) 逻辑左移指令 SHL(Shift Left)逻辑右移指令 SHR(Shift Right)这 4 条指令的格式相同,以 SAL 为例:CL ;移位位数大于 1 时SAL mem/reg1;移位位数等于 1 时 算术移位把操作数看做有符号数; 逻辑移位把操作数看做无符号数。 移位位数放在 CL 寄存器中,如果只移 1 位,也可以直接写在指令中。例如:MOV CL,4SHR AL,CL ;AL 中的内容右移 4 位 影响 C,P,S

34、,Z,O 标志。 结果未溢出时:左移 1 位操作数*2右移 1 位操作数/2例:把 AL 中的数 x 乘 10因为 10=8+2=23+21,所以可用移位实现乘 10 操作。程序如下:MOV CL,3SALAL,1; 2x MOV AH,ALSALAL,1; 4xSALAL,1; 8xADD AL,AH; 8x+2x = 10 x四、控制转移指令1、 转移指令(1) 无条件转移指令 JMP格式:JMP label本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。(2) 条件转移指令(补充内容) 根据单个标志位设置的条件转移指令JB/JC;低于,或 CF=1,则转移JNB/JNC/J

35、AE ;高于或等于,或 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,则转移根据组合条件设置的条件转移指令这类指令主要用来判断两个数的大小。判断无符号数的大小l JA高于则转移条件为: CF=0ZF=0,即 ABl JNA/JBE 低于或等于则转移条件为: CF=1ZF=1,即 ABl JBAB 则转移l JNBAB 则转移判断有符号数的大小l JG ;大于则

36、转移(AB)条件为: (SFOF=0)ZF=0l JGE;大于或等于则转移(AB)条件为: (SFOF=0)ZF=1lJLE;小于或等于则转移(AB)条件为: (SFOF=1)ZF=1l JL;小于则转移(AB条件为: (SFOF=1)ZF=02、循环控制指令l 用在循环程序中以确定是否要继续循环。l 循环次数通常置于 CX 中。l 转移的目标应在距离本指令-128+127 的范围之内。l 循环控制指令不影响标志位。(1)LOOP格式:LOOPlabel操作:(CX)-1CX;若(CX)0,则转至 label 处执行;否则退出循环,执行 LOOP 后面的指令。LOOP 指令与下面的指令段等价:

37、DEC CXJNZ label3、过程调用指令(1)调用指令 CALL一般格式:CALL sub;sub 为子程序的入口4、中断指令(1)INT n 执行类型 n 的中断服务程序,N=0255五、处理器控制指令1、标志位操作(1) CF 设置指令CLC0CFSTC1CFCMCCF 变反(2) DF 设置指令CLD0DF (串操作的指针移动方向从低到高)STD1DF (串操作的指针移动方向从高到低)(3) IF 设置指令CLI0IF (禁止 INTR 中断)STI1IF (开放 INTR 中断)2 、 HLT(halt)执行 HLT 指令后,CPU 进入暂停状态。第四章 8086 汇编语言程序设

38、计第一节伪指令CPU 指令与伪指令之间的区别:(1) CPU 指令是给 CPU 的命令,在运行时由 CPU 执行, 每条指令对应 CPU 的一种特定的操作。而伪指令是给汇编程序的命令,在汇编过程中由汇编程序进行处理。(2) 汇编以后,每条 CPU 指令产生一一对应的目标代码; 而伪指令则不产生与之相应的目标代码。1、数据定义伪指令(1) 数据定义伪指令的一般格式为:l 变量名 伪指令 操作数,操作数 DB用来定义字节(BYTE) DW用来定义字(WORD)DD用来定义双字(DWORD)(2) 操作数的类型可以是:常数或常数表达式l 例 如 : DATA_BYTE DB 10,5,10H DAT

39、A_WORD DW 100H,100,-4 DATA_DWDD 2*30,0FFFBH可以为字符串(定义字符串最好使用 DB)l 例如:char1 DB AB可以为变量可以为?号操作符例如:X DB 5,?,6?号只是为了给变量保留相应的存储单元,而不赋予变量某个确定的初值。重复次数:N DUP(初值,初值)l 例如:ZERO DB 2 DUP(3,5)XYZDB 2 DUP(0,2 DUP(1,3),5)在伪操作的操作数字段中若使用$,则表示的是地址计数器的当前值。2、补充内容:(1)类型 PTR地址表达式例如:MOV BYTE PTR BX,12HINC BYTE PTR BX注意:单操作

40、数指令,当操作数为基址、变址、基+变的时候必须定义3、符号定义伪指令(1)EQU格式:名字 EQU 表达式EQU 伪指令将表达式的值赋予一个名字,以后可用这个名字来代替上述表达式。例 :CONSTANT EQU 100 NEW_PORT EQU PORT_VAL+1(2) =(等号)与 EQU 类似,但允许重新定义例:DATA ENDSEMP=7;值为 7CODE SEGMENTEMP=EMP+1;值为 8ASSUME CS:CODE,DS:DATABGN: MOV AX ,DATA(3)LABELLABEL 伪指令的用途是定义标号或变量的类型格式:名字LABEL 类 型变量的类型可以是 BY

41、TE,WORD,DWORD。标号的类型可以是 NEAR 或 FAR4、段定义伪指令与段有关的伪指令有:SEGMENT、ENDS、ASSUME、ORG(1) 段定义伪指令的格式如下:段名 SEGMENT 定位类型 组合类型 类别 段名 ENDSSEGMENT 和 ENDS这两个伪指令总是成对出现,二者前面的段名一致。二者之间的删节部分,对数据段、附加段及堆栈段,一般是符号、变量定义等伪指令。对于代码段则是指令及伪指令。此外,还必须明确段和段寄存器的关系,这可由 ASSUME 语句来实现。(2) ASSUME格式:ASSUME段寄存器名:段名,段寄存器名:段名,ASSUME 伪指令告诉汇编程序,将

42、某一个段寄存器设置为某一个逻辑段址,即明确指出源程序中逻辑段与物理段之间的关系。(3) ORG伪指令 ORG 规定了段内的起始地址或偏移地址,其格式为:ORG表达式的值即为段内的起始地址或偏移地址,从此地址起连续存放程序或数据。5、汇编程序的一般结构(记住)DATA SEGMENTMOV DS,AX.MOV AH,4CH INT21HCODE ENDS END BGN第三节 程序设计1、 顺序程序的设计(略)2、 分支程序的设计典型例题:1X0Y =0X=0-1X0l 程 序 为 : MOV AL ,X CMP AL,0 JGEBIG MOV Y,-1 JMP EXITBIG:JE EQUL

43、MOV Y,1 JMP EXITEQUL:MOV Y,0 EXIT:.3、 循环程序见讲义。l 用计数控制循环“”“”At the end, Xiao Bian gives you a passage. Minand once said, people who learn to learn are very happy people. In every wonderful life, learning is an eternal theme. As a professional clerical and teaching position, I understand the importanc

44、e of continuous learning, life is diligent, nothing can be gained, only continuous learning can achieve better self. Only by constantly learning and mastering the latest relevant knowledge, can employees from all walks of life keep up with the pace of enterprise development and innovate to meet the needs of the market. This document is also edited by my studio professionals, there may be errors in the document, if there are errors, please correct, thank you!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!