ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:53.27KB ,
资源ID:18364630      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18364630.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(8086CPU指令系统文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

8086CPU指令系统文档格式.docx

1、 INC SI INC DI可用指令 来完成该功能。 A)REP LODSB B)REP STOSB C)REPE SCASB D)REP MOVSB2、设(AL)=-68,(BL)=86,执行SUB AL,BL指令后,正确的结果是 。 A)CF=1 B)SF=1 C)OF=1 D)ZF=13、设(SS)=0FFA0H,(SP)=00B0H,(AX)=8057H,(BX)=0F79H,执行指令“PUSH AX”后,(SP)= (1) ;再执行指令:PUSH BXPOP AX后,(SP)= (2) ,(AX)= (3) ,(BX)= (4) 。4、设(AL)=-68,(BL)=86,执行SUB

2、AL,BL指令后,正确的结果是 。A)SF=1 B)ZF=0C)CF=1 D)OF=15、假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSH AX后, =12H A)20014 B)20011H C)20010H D)2000FH6、若要检查BX寄存器中的D12位是否为1,应该用 指令。 A)OR BX,1000H B)TEST BX,1000H JNZ NO JNZ YES C) XOR BX,1000H D)AND BX,1000H JZ YES JNZ YES7、用BP作基址变址寻址时,操作数所在的段是当前 。 A)数据段 B)代码段 C)堆栈段 D)附加

3、段8、执行下列指令后: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MUL CX HLT A)8D00H B)9260H C)8CAOH D)0123H四、判断题1、MOV AX,BP的源操作数的物理地址为16(DS)+(BP)。( )2、判断下列指令是否正确,若错误,请指出原因。(1) CMP CX,BYTE PTR STR+1(2) MOV DI,OFFSET BXSI(3) LEA DI,BXSI(4) PUSH AL(5) SHL AX,3(6) MOV AX,TAB2-TAB1+100(7) OUT CX,AL(8) DIV 25(9) MOV CX

4、,BX(10) POP CS(11) PUSH WORD PTR 20BX+SI-2(12) LEA BX,4BX(13) MOV BYTE PTR BX,1000(14) MOV AX,SIDI(15) MOV SAVE_WORD,DS(16) MOV AX,ARRAY1+ARRAY2(17) MOV WORD_OP1,WORD_OP1-WORD_OP2(18) MOV SP,SS:DATA_WORDBXSI(19) MOV AH,BX(20) MUL AX,BX(21) LEA DS,35DI(22) MOV STRBXSI,ES:AX(23) MOV BXBP,AX(24) ADD AX

5、,ACH一、8086指令的一般格式 概述 指令:是计算机用以控制各部件协调动作的命令; 指令系统:CPU可执行的指令的集合;机器指令:是CPU仅能识别的指令的二进制代码,也称机器码;指令格式:由操作码和操作数两部分组成,有些指令无操作数。操作码规定了指令的操作性质,用助记符表示;操作数规定了指令的操作对象。指令可分为无操作数指令、单操作数指令、双操作数指令。例:HLT 无操作数 DAA 约定或隐含操作数 INC AL 单操作数 MOV AL,BL 双操作数,其中逗号前的操作数AL为目的操作数,逗号后的操作数BL为源操作数。操作数类型有三种:立即数:出现在指令中的常数; 寄存器操作数:操作数在寄

6、存器中; 存储器操作数:操作数在存储器中。 二、 8086寻址方式 是指CPU在执行指令时寻找操作数或操作数地址的方式。1. 立即寻址:直接放在指令中的常数称为立即数,立即数只能是源操作数,立即数存放在指令操作码之后的存储单元中。MOV AL,50H 2. 寄存器寻址:存放在寄存器中的数据为操作数,寄存器操作数可以是源操作数,也可以是目的操作数。MOV AL,BL 以下寻址方式38,操作数都在存储器中。存储器操作数具有类型属性,如字节(BYTE)、字(WORD)、双字(DWORD)等,反映了数据占用存储单元的字节数,指令书写中,约定用方括号内容表示存储器操作数的偏移地址;用类型名 PTR 偏移

7、地址的形式说明指令中存储器操作数的类型,例:WORD PTR 1000H;用变量名DB/DW/DD数据序列的形式分别定义具有“变量名”的字节、字或双字存储器操作数,如BUF DB 10H,20H。3. 存储器寻址 (1)直接寻址:存储器操作数的16位偏移地址直接包含在指令的方括号中。MOV AL,1000H 约定由DS提供段地址 MOV AL,CS:1000H ;段超越,由CS提供段地址 MOV AL,SS:段超越,由SS提供段地址 (2)寄存器间接寻址:操作数所在的存储单元的偏移地址放在指令给出的寄存器中。可用于这种寻址方式的寄存器只能是SI、DI、BP和BX。其中,SI、DI、BX约定的段

8、寄存器是DS,而BP约定的段寄存器SS。MOV AX,SI ;AXDS:SI MOV BX,AX ;DS:BXAX (3)基址寻址:操作数的有效地址是指令给定的位移量(8位或16位)与BX、BP内容之和,段寄存器约定同寄存器间接寻址,允许段超越。MOV AX,BX+3AH ;BX+3AH MOV BP+4EB3H,AX;SS:BP+4EB3HAX (4)变址寻址:操作数的有效地址是指令给定的位移量与寄存器SI或DI内容之和,段寄存器约定在DS中,允许段超越。MOV DI+12H,AX ;DI+12H AX MOV BX,SS:DI+45H ;BXSS:DI+45H (5)基址变址寻址:操作数的

9、有效地址是指令给定的位移量和一个基址寄存器(BX或BP)及一个变址寄存器(SI或DI)的内容之和,段寄存器约定由基址寄存器决定,若为BX,段寄存器约定为DS;若为BP,段寄存器约定为SS,允许段超越。MOV BX,DI+BP+45H ;DI+BP+45H MOV AX,ES:SI+BX+76H;AXES:SI+BX+76H 注意:基址寄存器BX和BP不能同时出现在一个方括号内,变址寄存器DI和SI亦如此。(6)串寻址:用于数据串操作指令,它隐含地运用:SI指出源串偏移地址,DI指出目的串偏移地址,指令执行后,SI和DI的内容自动加1或减1(操作数为字节类型时)、加2或减2(操作数为字类型时);

10、约定源串段地址在DS中,目的串段地址在ES中。不允许段超越。MOVSB ;ES:DI DS:SI,SISI 1,DIDI 1 MOVSW ;2,DIDI 2 (7)端口寻址:操作数在外设端口中。直接端口寻址:指令中直接给出的8位常数是外设端口地址。IN AL,34H ;AL34H OUT 34H,AL ;34HAL 间接端口寻址:指令中外设端口的16位地址在DX中。MOV DX,280H IN AL,DX ;AL280H OUT DX,AL ;280HAL (8)隐含寻址:指令中没有给出操作数,但却隐含在固定对象中。 例:AAA ;隐含对AL操作, 三、数据传送指令 1. 通用数据传送指令 M

11、OV dst,src 指令功能:dstsrc, 标志寄存器:不影响, 操作数:src:通用寄存器、段寄存器、存储器操作数、立即数; dst:通用寄存器、段寄存器、存储器操作数。注意点:src和dst必须类型一致(都是8位或者是16位); dst不能是立即数; 当操作数不是立即数时,两个操作数不能都是存储器操作数; 源操作数是立即数时,目的操作数不能是段寄存器; CS不得作目的操作数。MOV BX,CX ;BXCX MOV 2000H,BL ;2000HBL XCHG dst,src dstsrc 两操作数可以是通用寄存器和存储器。两操作数不能都是存储器操作数; 两操作数类型必须一致。XCHG

12、AX,BX ;AX BX PUSH src SPSP-1,SPsrcH,SPSP-1,SPsrcL 不影响 寄存器(IP除外)或存储单元。源操作数只能是16位,而不能是8位的。 POP dst dstLSP,SPSP+1,dstHSP,SPSP+1 不影响,POPF除外 同PUSH指令,但CS不能作为目的操作数。目的操作数只能是16位的,而不能是8位的。 XLAT(查表指令) ALDS:BX+AL;不影响;用途:用于查表,表首地址的偏移地址在BX中,表长度可达256字节。2. 地址传送指令:用来传送操作数的地址。 LEA reg16,src 取偏移地址指令 将源操作数的偏移地址送16位通用寄存

13、器;目的操作数是16位通用寄存器,源操作数是存储器操作数。 LDS reg16,src 和LES reg16,src 取地址指针指令 指令功能:将源操作数的有效地址所对应的双字存储单元的高16位内容送入DS(LES指令送入ES),低16位内容送入指令指定的16位通用寄存器;不影响。设某双字存储单元偏移地址为3000H,双字数据为12345678H,则 LDS SI,3000H ;DS=1234H,SI=5678H LES DI,3000H ;ES=1234H,DI=5678H 3. 标志传送指令 专门用于对标志寄存器进行操作 LAHF ;AH FL ,标志寄存器低8位送AH SAHF ;FLA

14、H,AH的内容送标志寄存器低8位 PUSHF ;标志寄存器内容压栈 POPF ;栈顶内容送标志寄存器 SAHF和POPF指令将直接影响标志位,而其他传送均不会对标志位产生影响。4. 输入/输出指令 用于主机与外设端口间的数据传送。IN AL,n; IN AL,DX; IN AX,n; IN AX,DX 从端口(地址为n或在DX中)输入8位数据到AL中或输入16位数据到AX中;OUT n,AL; OUT DX,AL; OUT n,AX; OUT DX,AX 从AL中输出8位数据到端口(地址为n或在DX中)或从AX中输出16位数据到端口(地址为n或在DX中)。四、算术运算指令 1. 加法指令 AD

15、D dst,src dstsrc+dst 影响AF、CF、PF、OF、ZF、SF 目的操作数:通用寄存器、存储器; 源操作数:通用寄存器、存储器、立即数;两操作数必须类型一致; 两操作数不能同时为存储器操作数。ADD AX,BX ;AXAX+BX ADD BX+DI+64H,AX ;BX+DI+64HAX ADC dst,src dstdst+src+CF 其余同ADD指令。 INC dst dstdst+1 影响OF、SF、ZF、AF、PF;8位/16位通用寄存器或存储器;不影响CF。2. 减法指令 SUB dst,src dstdst-src;SUB BX,CX ;BXBX-CX SBB

16、dst,src dstdst-src-CF;其余同SUB指令。SBB BX+SI,AL ;BX+SI BX+SI-AL-CF DEC dst dstdst-1 其余同INC指令。 NEG dst dst0-dst或det +1 影响AF、CF、PF、OF、ZF、SF;8位/16位通用寄存器或存储器。MOV AH,5 NEG AH ;AH=11111011B,是-5(补码) MOV AX,-6 NEG AX ;AX=0006H,是+6 CMP dst,src dst-src 其余同SUB指令;指令执行后,目的操作数保持原值不变。3. 乘法指令 MUL src 无符号数乘法指令 AXAL*src(

17、字节乘法) DXAXAX*src(字乘法) 字节乘:若乘积高8位AH 0,则CF=1,OF=1, 若乘积高8位AH=0,则CF=0,OF=0; 字乘: 若乘积高16位DX 若乘积高16位DX=0,则CF=0,OF=0;可以是通用寄存器、存储器,不能是立即数。MUL BX ;DXAXAX*BX MUL BYTE PTR SI ;AXAL*(DS:SI) IMUL src 带符号数乘法指令 同MUL指令;若乘法结果AH或DX包含有效值,则OF=1、CF=1, 若乘法结果AH或DX只是低半部分的符号扩展,则OF=0、CF=0 同MUL指令。IMUL WORD PTR DI ;DXAXAX*(DS:D

18、I) 4. 除法指令 DIV src 无符号除法指令 字节除:ALAX/src,余数在AH中, 字除: AXDXAX/src,余数在DX中。 若商超过AL(字节除)或AX(字除)所能存放的最大值(FFH或FFFFH)时,系统会自动产生0类中断,且商和余数都不确定。操作数的规定与乘法指令相同。DIV BX ;DX,AXDXAX/BX,DX余数,AX商 IDIV src 带符号数除法指令 需强调的是余数的符号必须和被除数的符号相同。当商超过AL或AX所能存放的最大值+127(字节除)或+32767(字除),以及所能存放的最小值-127(字节除)或-32767(字除)时,系统会自动产生0类中断。5.

19、 符号扩展指令 扩展带符号数的字节数 CBW 将AL中数的符号位扩展到整个AH中。 CWD 将AX中数的符号位扩展到整个DX中。MOV AL,-16 ;AL=0F0H(-16) CBW ;AX=0FFF0H(-16) CWD ;DXAX=0FFFFFFF0H(-16) IDIV BX ;DX余数,AX商 6. BCD数调整指令 压缩型BCD数(也称组合BCD数):一个字节表示两位BCD数;非压缩型BCD数(也称非组合BCD数):一个字节表示一位BCD数,有效位在低4位,高4位为零。 加法的BCD数调整 aAAA:加法的非压缩型BCD数调整指令 对在AL中两个非压缩型BCD数相加的结果,调整成非

20、压缩型BCD数在AL中;若AL低4位大于9或AF=1,则AL+6,AH+1,CF和AF置1,AL高4位清0;否则AL高4位清0,CF和AF置0, 该指令不影响PF、ZF、SF、OF。必须紧跟在加法指令之后且只能对AL中的内容进行调整。 b. DAA:压缩型BCD数调整指令 对在AL中两个压缩型BCD数相加的结果,调整成压缩型BCD数在AL中;影响CF、PF、AF、ZF、SF,其中CF=1说明结果大于99。MOV BL,35H MOV AL,85H ADD BL,AL DAA 结果AL=20H,CF=1,AF=1,PF=0,ZF=0,SF=0 减法的BCD数调整 aAAS:减法的非压缩型BCD数

21、调整指令 对在AL中两个非压缩型BCD数相减的结果,调整成非压缩型BCD数在AL中;影响AF、CF;必须紧跟在减法指令之后且只能对AL中的内容进行调整。SUB AL,BL ;AL和BL中的非压缩BCD数相减 AAS ;调整AL为正确的非压缩BCD数 bDAS:减法的压缩型BCD数调整指令 对在AL中两个压缩型BCD数相减的结果,调整成压缩型BCD数在AL中;同DAA指令。 乘法的BCD数调整 AAM;非压缩型BCD数调整 对AX中两个非压缩型BCD数在相乘的结果调整成两位非压缩型BCD数,高位非压缩型BCD数在AH中,低位非压缩型BCD数在AL中;影响PF、SF、ZF。必须紧跟在乘法指令之后。

22、 除法的BCD数调整 AAD;用在两位非压缩型BCD数在相除之前进行调整,对AX内容进行调整,使两个未组合的十进制数相除之后可得到非组合的BCD数结果,商在AL中,余数在AH中;必须紧跟在除法指令之前。五、位操作指令(包括逻辑运算指令、移位指令) 1. 逻辑运算指令 AND dst,src dstdstsrc 影响SF、ZF、PF,OF=0、CF=0,AF不确定 两操作数不能都是存储器操作数。MOV BX,0F56H AND BL,BH ;BL=06H OR dst,src dstdstsrc 其余同AND指令。 NOT dst dst 通用寄存器、存储器。MOV AL,05H NOT AL

23、;AL=0FAH XOR dst,src dstdst src TEST dst,src dstsrc 其余同AND指令 指令执行后,目的操作数的值保持不变。2. 移位指令 移位次数cnt可以是1,若移位次数大于1时,必须放在CL中,移位结束后,CL值不变。影响AF以外的各标志位,而AF不定;当cnt=1时,OF才有意义,当移位前操作数的最高两位相同时,移位后OF=0,当操作数的最高两位不同时,OF=1。 SAL dst,cnt 算术左移指令 SHL dst,cnt 逻辑左移指令通用寄存器或存储器的8位或16位内容。 SAR dst,cnt 算术右移指令 SHR dst,cnt 逻辑右移指令 3. 循环移位指令 只影响CF和OF,同样只有当cnt=1时,OF才有意义。操作数同移位指令 ROL dsr,cnt 循环左移指令 ROR dst,cnt 循环右移指令 RCL dst,cnt 带进位循环左移指令 RCR dst,cnt 带进位循环右移指令六、程序控制指令 用来控制程序的执行顺序。程序的执行顺序是由CS和IP确定的 转移指令可分为:段间转移(也称远转移):目标属性为FAR,同时改变CS和

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1