准备更换宽带网,不知怎么选择.江苏电信宽带测速

> 问题详情
下列指令中,哪一条指令执行时会影响标志位的状态?A.PUSHFB.POPFC.JCD.LOOPNZ
悬赏:0&答案豆
提问人:匿名网友
发布时间:
下列指令中,哪一条指令执行时会影响标志位的状态?A.PUSHFB.POPFC.JCD.LOOPNZ请帮忙给出正确答案和分析,谢谢!
为您推荐的考试题库
网友回答(共1条)展开
您可能感兴趣的试题
1执行MOV EAX, -2指令后,EAX寄存器中的数据是A.FFFFFFFEHB.OOOOFFFEHC.HD.H2假设AL寄存器中的数据是B,执行下列哪一条指令后,它被改变为B?A.AND AL, BB.OR AL, BC.XOR AL, BD.NOT AL3下面是关于目前PC主板的叙述,其中错误的是A.CPU通过主板上的CPU插座安装在主板上B.内存条通过主板上的存储器插槽安装在主板上C.PC常用外围设备都通过插在I/O总线槽上的扩充卡与主板相连D.PC主板的物理尺寸有不同的大小,但一般应遵循相关的标准4PC采用MCH+ICH结构形式的芯片组时,下面有关叙述中错误的是A.MCH通过前端总线(处理器总线)与CPU连接B.MCH通过存储器总线与存储器(内存条)连接C.SATA接口功能主要由MCH提供D.USB接口功能主要由ICH提供
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
享三项特权
享三项特权
享三项特权
选择支付方式:
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
常用邮箱:
用于找回密码
确认密码:②地址表传送,需要传送的参数较多时可以利用存储单;③堆栈传送,这种方式要审慎注意堆栈的变化情况;13.过程定义的一般格式是什么?子程序开始处为什;POP指令?;解:格式见P90,;如果一个子程序被多次调用,保护与恢复(主程序)现;14.阅读下面程序段,指出它的功能;DATASEGMENT;STRINGDB‘Exxperience?’;LENGDW100;KE
② 地址表传送,需要传送的参数较多时可以利用存储单元传送。在调用子程序前,把所有参数依次送入地址表,然后将地址表的首地址作为子程序入口参数传递给子程序。
③ 堆栈传送,这种方式要审慎注意堆栈的变化情况。
13. 过程定义的一般格式是什么?子程序开始处为什么常用PUSH指令?返回前用
解:格式见P90,
如果一个子程序被多次调用,保护与恢复(主程序)现场就非常重要。主程序每次调用子程序时,主程序的现场不会相同,保护与恢复现场的工作就只能在子程序中进行。原则上,在子程序中,首先把子程序中要用到的寄存器、存储单元、状态标志等压入堆栈或存入特定空间中,然后子程序才可以使用它们,使用完后再将它们弹出堆栈或从特定空间中取出,恢复它们原来的值,即恢复主程序现场。保护和恢复现场常使用PUSH和POP指令。
14. 阅读下面程序段,指出它的功能。
DB ‘Exxperience?’
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC FAR
START:MOV AX, DATA
MOV DS, AX
MOV ES, AX
LEA BX, STRING
;字符串地址-&BX
LEA CX, LENG
;字符串长-&CX
MOV AL, KEY
CALL DELCHAR
MOV AH, 4CH
MOV BP, SP
MOV SI, [BP+4]
MOV CX, [SI]
MOV DI, [BP+6]
REPNE SCASB
MOV SI, [BP+4]
DEC WORD PTR[SI]
MOV SI, DI
DELCHAR ENDP
解:从字符串中删去多余的‘X’字符。
15. 显示两位压缩BCD码值(0~99),要求不显示前导0。
? 内存中的两位压缩BCD码
CS:CODE,DS:DATA
START: MOV
SHR AL, CL
AND AL,0FH
AL,30H显示高位BCD码
AND AL,0FH
ADD AL,30H显示低位BCD码
16. 某数据区中连续存放着100个整数,要求将其中为0的元素删除,并将保留的数
据连续存放。
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC FAR
START:MOV AX, DATA
MOV DS, AX
MOV ES, AX
LEA BX, STRING
LEA CX, LENG
MOV AL, KEY
CALL DELCHAR
MOV AH, 4CH
MOV BP, SP
MOV SI, [BP+4]
MOV CX, [SI]
MOV DI, [BP+6]
REPNE SCASB
MOV SI, [BP+4]
DEC WORD PTR[SI]
MOV SI, DI
DELCHAR ENDP
17. 编程,把以DATA为首址的两个连续单元中的16位无符号数乘以10。
CS:CODE,DS:DATA
START: MOV
LEA SI,BUFFER
MOV AX,[SI]
MOV AX,[SI]
MOV BUFFER,AL
MOV BUFFER+1,AH
注:2X+23X=2X+8X=10X
18. 编程,比较两个字串是否相同,并找出其中第一个不相等字符的地址,将该地址
送BX,不相等的字符送AL。两个字符串的长度均为200个字节,M1为源串首地址,M2为目标串首地址。
CS:CODE,DS:DATA ,ES:EDATA
START: MOV
SI,M1(SI)←源串首地址
DI,M2(DI)←目标串首地址
MOV CX,200(CX)←串长度 CLD(DF)=0,使地址指针按增量方向修改 REPE CMPSB若相等则重复比较 AND
CX,0FFFFH检查(CX)是否等于零 JZ
STOP(CX)=0则转STOP DEC
SI(SI)-1,指向不相等单元 MOV BX,SI(BX)←不相等单元的地址 MOV AL,[SI](AL)←不相等单元的内容 MOV
19. 编程,在内存的数据段中存放了100个8位带符号数,其首地址为TABLE,试统
计其中正元素、负元素、和零元素的个数,并分别将个数存入PLUS,MINUS,ZERO等3个单元中;
CS:CODE,DS:DATA
START: MOV
MOV PLUS,AL
MOV MINUS,AL
MOV ZERO,AL
LEA SI,TABLE
MOV CX,100
CHECK:LODSB
X1: INC MINUS
X2: INC ZERO
NEXT: LOOP CHECK
三亿文库包含各类专业文献、应用写作文书、幼儿教育、小学教育、各类资格考试、外语学习资料、文学作品欣赏、专业论文、70微机原理及接口技术-习题答案等内容。 
 《微机原理与接口技术》习题参考答案习题 2 1. 为何说 8086CPU 是 16 位 CPU? 答:16 位指的是 8086CPU 的字长,而字长一般来说和运算器、寄存器、总线宽度...  《微机原理与接口技术》课后习题答案_工学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档《微机原理与接口技术》课后习题答案_工学_高等教育_教育专区。...  微机原理与接口技术 郭兰... 7页 1下载券 微型计算机原理与接口技... 53页...部分习题解题思路及参考解答 1、设计一个波形发生器,要求能产生锯齿波、矩形波...  微机原理及接口技术习题解答微机原理及接口技术习题解答隐藏&& 习题2 2.1 2.3 2.5 8086CPU 具有 20 条地址线, 可直接寻址 1MB 容量的内存空间, 在访问 I/O...  微机原理与接口技术课后答案_教育学_高等教育_教育专区。微机原理与接口技术课后答案第一章作业习题课 2.微处理器,微型计算机,微型计算机系统有什么联系与区别? ? ...  《微机原理与接口技术》 洪永强习题答案_信息与通信_工程科技_专业资料。微机原理与接口技术,洪永强编课后习题答案《微机原理与接口技术》 ―习题及参考答案与洪永强...  微机原理与接口技术李珍... 4页 1下载券微​机​原​理​与​接​...选择题(各小题只有一个正确答案) (1)执行下列三条指令后: MOV SP,1000H ...  微机原理与接口技术(第二版)课后习题答案完整版_工学_高等教育_教育专区。微机原理与接口技术(第二版) 清华大学出版社 习题 1 1. 什么是汇编语言,汇编程序,和...  微机原理与接口技术_楼顺天版_课后题答案_工学_高等教育_教育专区。很好的答案,希望大家多多下载微机原理与接口技术 楼顺天 周佳社编著 科学出版社找了好久,终于在...汇编指令大全
?----------------------- Page 1-----------------------
汇编汇编指令大全指令大全
汇编汇编指令大全指令大全
零、零、状状态态寄存器寄存器
零零、、状状态态寄存器寄存器
1 MOVE 数据传送指令 MOV
格式: MOV OPRD1,OPRD2
1. OPRD1 为目的操作数,可以是
寄存器、存储器、累加器.
功能: 本指令将一个源操作数送到目的操作数
OPRD2 为源操作数,可以是寄存
中,即OPRD1&--OPRD2.
器、存储器、累加器和立即数.
2. MOV 指令以分为以下四种情
&1& 寄存器与寄存器之间的数据
&2& 立即数到通用寄存器数据传
&3& 寄存器与存储器之间的数据
&4& 立即数到存储器的数据传送
3. 本指令不影响状态标志位
堆栈操作指令 PUSH和POP
1. OPRD为16位(字)操作数,可以
格式: PUSH OPRD
是寄存器或存储器操作数.
2. PUSH的操作过程是: (SP)&--
(SP)-2,((sp))&--OPRD 即先修
功能: 实现压入操作的指令是PUSH指令;实现弹出
改堆栈指针SP(压入时为自动减
操作的指令是POP指令.
2),然后,将指定的操作数送入新
的栈顶位置.
此处的((SP))&--OPRD,也可以理
解为: [(SS)*16+(SP)]&--OPRD
或 [SS:SP]&--OPRD
3POPPOP 堆栈操作指令 PUSH和POP
格式: PUSH OPRD
1. OPRD为16位(字)操作数,可以
是寄存器或存储器操作数.
2. POP指令的操作过程是: POP
功能: 实现压入操作的指令是PUSH指令;实现弹出
OPRD:OPRD&--((SP)),(SP)&--
操作的指令是POP指令.
它与压入操作相反,是先弹出栈
顶的数顶,然后再修改指针SP的
3. 示例: POP AX
POP DATA1 POP ALFA[BX][DI]
4. PUSH和POP指令对状态标志位
4XCHGXCHG 数据交换指令 XCHG
格式: XCHG OPRD1,OPRD2 其中的OPRD1为目的操作 1. OPRD1及OPRD2可为通用寄存
数,OPRD2为源操作数
器或存储器,但是两个存储器之
间是不能用XCHG指令实现的.
功能: 将两个操作数相互交换位置,该指令把源操
作数OPRD2与目的操数OPRD1交换.
2. 段寄存器内容不能用XCHG指
3. 若要实现两个存储器操作数
DATA1及DATA2的交换,可用以下
示例: PUSH DATA1
页码,1/22
----------------------- Page 2-----------------------
PUSH DATA2
4. 本指令不影响状态标志位.
5XLATXLAT 查表指令 XLAT
格式: XLAT TABLE其中TABLE为一待查表格的首地
1. 在执行该指令前,应将TABLE
先送至BX寄存器中,然后将待查
字节与在表格中距表首地址位移
功能: 把待查表格的一个字节内容送到AL累加器
量送AL,即 (AL)&--((BX)+
2. 本指令不影响状态标位,表格
长度不超过256字节.
6LAHFLAHF 标志传送指令 LAHF
说明: 该指令不影响FLAG的原来
内容,AH只是复制了原FLAG的低8
格式: LAHF
功能: 取FLAG标志寄存器低8位至AH寄存器.(AH)&-
-(FLAG)7~0
7SAHFSAHF 标志传送指令 SAHF
说明: 本指令将用AH的内容改写
FLAG标志寄存器中的SF、ZF、
格式: SAHF
AF、PF、和CF标志,从而改变原
来的标志位.
功能: 将AH存至FLAG低8位
8PUSHFPUSHF 标志传送指令 PUSHF
PUSHFPUSHF
格式: PUSHF
功能: 本指令可以把标志寄存器的内容保存到堆栈
9POPFPOPF 标志传送指令 POPF
说明: 如果对堆栈中的原FLAG内
容进行修改,如对TF等标志位进
格式: POPF
行修改,然后再弹回标志位寄存
器FLAG.这是通过指令修改TF标
功能: 本指令的功能与PUSHF相反,在子程序调用和 志的唯一方法.
中断服务程序中,往往用PUSHF指令保护FLAG的内
容,用POPF指令将保护的FLAG内容恢复.
10LEALEA 有效地址传送指令 LEA
格式: LEA OPRD1,OPRD2
1. OPRD1 为目的操作数,可为任
意一个16位的通用寄存器.
功能: 将源操作数给出的有效地址传送到指定的的
OPRD2 为源操作数,可为变量
名、标号或地址表达式.
示例: LEA BX,DATA1
LEA DX,BETA[BX+SI]
LEA BX BX,[BP],[DI]
2. 本指令对标志位无影响。
11LDSLDS 从存储器取出32位地址的指令 LDS
格式: LDS OPRD1,OPRD2
OPRD1 为任意一个16位的寄存
功能: 从存储器取出32位地址的指令.
OPRD2 为32位的存储器地址.
示例: LDS SI,ABCD
LDS BX,FAST[SI]
LDS DI,[BX]
注意: 上面LDS DI,[BX]指令的
功能是把BX所指的32位地址指针
的段地址送入DS,偏移地址送入
页码,2/22
----------------------- Page 3-----------------------
12LESLES 从存储器取出32位地址的指令 LES
格式: LES OPRD1,OPRD2
OPRD1 为任意一个16位的寄存
功能: 从存储器取出32位地址的指令.
OPRD2 为32位的存储器地址.
示例: LES SI,ABCD
LES BX,FAST[SI]
LES DI,[BX]
注意: 上面LES DI,[BX]指令的
功能是把BX所指的32位地址指针
的段地址送入ES,偏移地址送入
13ADDADD 加法指令 ADD(Addition)
格式: ADD OPRD1,OPRD2
1. OPRD1为任一通用寄存器或存
储器操作数,可以是任意一个通
功能: 两数相加
用寄存器,而且还可以是任意一
个存储器操作数.
OPRD2为立即数,也可以是任意一
个通用寄存器操作数.立即数只
能用于源操作数.
2. OPRD1和OPRD2均为寄存器是
允许的,一个为寄存器而另一个
为存储器也是允许的, 但不允许
两个都是存储器操作数.
3. 加法指令运算的结果对CF、
SF、OF、PF、ZF、AF都会有影
响.以上标志也称为结果标志.加
法指令适用于无符号数或有符号
数的加法运算.
14ADCADC 带进位加法指令 ADC(Addition Carry)
格式: ADC OPRD1,OPRD2
1. OPRD1为任一通用寄存器或存
储器操作数,可以是任意一个通
功能: OPRD1&--OPRD1 + OPRD2 + CF
用寄存器,而且还可以是任意一
个存储器操作数.
OPRD2为立即数,也可以是任意一
个通用寄存器操作数.立即数只
能用于源操作数.
2. OPRD1和OPRD2均为寄存器是
允许的,一个为寄存器而另一个
为存储器也是允许的,但不允许
两个都是存储器操作数.
3. 加法指令运算的结果对CF、
SF、OF、PF、ZF、AF都会有影
响.以上标志也称为结果标志.
4. 该指令对标志位的影响同ADD
15INCINC 加1指令 INC(INCrement by 1)
格式: INC OPRD
1. OPRD 为寄存器或存储器操作
功能: OPRD&--OPRD+1
2. 这条指令执行结果影响AF、
OF、PF、SF、ZF标志位,但不影
响CF标志位.
页码,3/22
----------------------- Page 4-----------------------
INC SI;(SI)&--(SI)+1
INC WORD PTR[BX]
INC BYTE PTR[BX+DI]
INC CL;(CL)&--(CL)+1
注意: 上述第二,三两条指令,是
对存储字及存储字节的内容加1
以替代原来的内容.
未组合的十进制加法调整指令 AAA(ASCII Adgust
for Addition)
1. 组合的十进制数和未组合的
十进制数:在计算中,十进制数可
用四位二进制数编码,称为BCD
功能: 对两个组合的十进制数相加运算(存在AL中) 码.
的结果进行调整,产生一个未组合的十进制数放在
当一个节(8位)中存放一位BCD
码,且放在字节的低4位, 高4位
为时称为未组合的BCD码.
2. AAA的调整操作
若(AL) and 0FH&9 或 AF=1,则
(AL)&--(AL)+6,(AH)&--(AH)+1
,AF=1,CF&--AF,(AL)&--(AL)
组合的十进制加法调整指令 DAA(Decimal Adjust
for Addition)
1. 调整操作如下
(1) 若(AL) and 0FH&9 或 AF=1
,则(AL)&--(AL)+6,AF&--1,对低
功能: 对AL中的两个组合进制数相加的结果进行调 四位的调整.
整,调整结果仍放在AL中,进位标志放在CF中.
(2) 若(AL) and 0F0H&90H 或
CF=1,则(AL)&--(AL)+60H,CF&--
2. 示例: (AL)=18H,(BL)=06H
ADD AL,BL ; (AL)&--(AL)+
(BL) ; (AL)=1EH
DAA ; (AL)
减法指令SUB(SUBtract)
格式: SUB OPRD1,OPRD2
示例 SUB DX,CX
SUB [BX+25],AX
功能: 两个操作数的相减,即从OPRD1中减去OPRD2, SUB DI,ALFA[SI]
其结果放在OPDR1中.
SUB DATA1[DI][BX],20A5H
带借位减去指令 SBB(SuBtraction with Borrow)
格式: SBB OPRD1,OPRD2
示例 SBB DX,CX
SBB AX,DATA1
功能: 是进行两个操作数的相减再减去CF进位标志 SBB BX,2000H
位,即从OPRD1&--OPRD1-OPRD2-CF,其结果放在OPDR SBB ALFA[BX+SI],SI
SBB BETAP[DI,030AH
减一指令 DEC(Decrement by 1)
格式: DEC OPRD
1. OPRD 为寄存器或存储器操作
功能: OPRD&--OPRD-1
2. 这条指令执行结果影响AF、
OF、PF、SF、ZF标志位,但不影
响CF标志位.
页码,4/22
----------------------- Page 5-----------------------
3. 示例 DEC AX
DEC WORD PTR[DI]
DEC ALFA[DI+BX]
302NEGNEG 取补指令 NEG(NEGate)
格式: NEG OPRD
1. OPRD为任意通用寄存器或存
储器操作数.
功能: 对操作数OPRD进行取补操作,然后将结果送
回OPRD.取补操作也叫作求补操作,就是求一个数的 2. 示例: (AL)=44H,取补后,
相反数的补码.
(AL)=0BCH(-44H).
3. 本指令影响标志位CF、OF、
SF、PF、ZF及AF.
303CMPCMP 比效指令 CMP(CoMPare)
格式: CMP OPRD1,OPRD2
1. OPRD1为任意通用寄存器或存
储器操作数.
功能: 对两数进行相减,进行比较.
OPRD2为任意通用寄存器或存储
器操作数,立即数也可用作源操
作数OPRD2.
2. 对标志位的影响同SUB指令,
完成的操作与SUB指令类似,唯一
的区别是不将OPRD1-OPRD2的结
果送回OPRD1,而只是比较.
3. 在指令系统中,专
门提供了一组根据带符号数比较
大小后,实现条件转移的指令.
304AASAAS 未组合十进制减法调整指令 AAS(ASCII Adjust
for Subtraction)
1. 本指令影响标志位CF及AF.
2. 调整操作
功能: 对两个未组合十进制数相减后存于AL中的结
果进行调整,调整后产生一个未组合的十进制数数
若(AL) and 0FH & 9 或 AF=1
且仍存于AL中.
则(AL)&--(AL)-6,(AH)&--(AH)-
1,CF&--AF,(AL)&--(AL) and 0
否则(AL)&--(AL) and 0FH
305DASDAS 组合十进制减法调整指令 DAS(Decimal Adjust
for Subtraction)
若(AL) and 0FH & 9 或 AF=1,
功能: 对两个组合十进制数相减后存于AL中的结果 则(AL)&--(AL)-6,AF=1
进行调整,调整后产生一个组合的十进制数且仍存
若(AL) and 0F0H & 90H 或 CF
1,则(AL)&--(AL)-60,CF=1
306MULMUL 无符号数乘法指令 MUL(MULtiply)
格式: MUL OPRD
1. OPRD为通用寄存器或存储器
功能: 乘法操作.
2. OPRD为源操作数,即作乘数.
目的操作数是隐含的,即被乘数
总是指定为累加器AX或AL的内
3. 16位乘法时,AX中为被乘数.8
位乘法时,AL为被乘数.当16位乘
法时,32位的乘积存于DX及AX中;
页码,5/22
----------------------- Page 6-----------------------
8位乘法的16位乘积存于AX中.
4. 操作过程: 字节相乘:(AX)&-
-(AL)*OPRD,当结果的高位字节
(AH)不等于0时,则CF=1、OF=1
307 IMULIMUL 带符号数乘法指令 IMUL(Integer MULtiply)
格式: IMUL OPRD
1. 其中OPRD为任一通用寄存器
或存储器操作数.
功能: 完成两个带符号数的相乘
2. MUL指令对带符号相乘时,不
能得到正确的结果.
例如: (AL)=255
(AX)=65025
注意: 这对无符号数讲,结果是
正确的,但对带符号数讲,相当于
(-1)*(-1)结果应为+1,而65025
对应的带符号数为-511,显然是
308AAMAAM 未组合十进制数乘法调整指令 AAM(ASCII Adjust
1. 实际上是两个未组合的十进
制数字节相乘,一个0~9的数与
另一个0~9的数相乘其积最大为
功能: 对两个未组合的十进制数相乘后存于AX中的 81.为了得到正确的结果,应进行
结果进行调整,产生一个未组合的十进制数存在AL
乘积: (AH)&--(AL)/10
(AL)&--(AL)MOD10
2. 本指令应跟在MUL指令后使
用,乘积的两位十进制结果,高位
放在AH中,低位放在AL中.AH内容
是MUL指令的结果被10除的商,即
(AL)/10,而最后的AL内容是乘积
被10整除的余数(即个位数).
309DIVDIV 无符号数除法指令 DIV(DIVision)
格式: DIV OPRD
1. 其中OPRD为任一个通用寄存
器或存储器操作数.
功能: 实现两个无符号二进制数除法运算.
2. 字节相除,被除数在AX中;字
相除,被除数在DX,AX中,除数在
字节除法: (AL)&--(AX)/OPRD,
(AH)&--(AX)MOD OPRD
字除法: (AX)&--(DX)
(AX)/OPRD,(DX)&--(DX)(AX)
310 IDIVIDIV 带符号数除法指定 IDIV(Interger DIVision)
格式: IDIV OPRD
1. 其中OPRD为任一通用寄存器
或存储器操作数.
功能: 这实现两个带符号数的二进制除法运算.
2. 理由与IMUL相同,只有IDIV指
令,才能得到符号数相除的正确
3. 当被除数为8位,在进行字节
除法前,应把AL的符号位扩充至
页码,6/22
----------------------- Page 7-----------------------
AH中.在16位除法时,若被除数为
16位,则应将AX中的符号位扩到
311CBWCBW 字节扩展指令 CBW(Convert Byte to Word)
1. 两个字节相除时,先使用本指
令形成一个双字节长的被除数.
功能: 将字节扩展为字,即把AL寄存器的符号位扩
2. 本指令不影响标志位.
3. 示例: MOV AL,25
IDIV BYTE PTR DATA1
312CWDCWD 字扩展指令 CWD(Convert Word to Double Word)
1. 两个字或字节相除时,先用本
指令形成一个双字长的的被除
功能: 将字扩展为双字长,即把AX寄存器的符号位
扩展到DX中.
2. 本指令不影响标志位.
3. 示例: 在B1、B2、B3字节类
型变量中,分别存有8们带符号数
a、b、c,实现(a*b+c)/a运算。
313AADAAD 未组合十进制数除法调整指令 AAD(ASCII Adjust
for Division)
1. AAD指令是在执行除法DIV之
前使用的,以便得到二进制结果
存于AL中,然后除以OPRD,得到的
功能: 在除法指令前对AX中的两个未组合十进制数 商在AL中,余数在AH中.
进行调整,以便能用DIV指令实现两个未组合的十进
制数的除法运算,其结果为未组合的十进制数,商
2. 示例: MOV BL,5
(在AL中)和余数(在AH中).
MOV AX,0308H
AAD ;(AL)&--1EH+08H=26H,(AH)
DIV BL ;商=07H--&(AL),余数
=03H--&(AH).
314ANDAND 逻辑与运算指令 AND
格式: AND OPRD1,OPRD2
1. 目的操作数OPRD1为任一通用
寄存器或存储器操作数.源操作
功能: 对两个操作数实现按位逻辑与运算,结果送
数OPRD2为立即数,任一通用寄存
至目的操作数.本指令可以进行字节或字的 ‘与’器或存储器操作数.
2. 示例: AND AL,0FH ;(AL)&--
OPRD1&--OPRD1 and OPRD2.
(AL) AND 0FH
AND AX,BX ;(AX)&--(AX) AND
AND DX,BUFFER[SI+BX]
AND BETA[BX],00FFH
注意: 两数相与,有一个数假则
逻辑或指令 OR
格式: OR OPRD1,OPRD2
1. 其中OPRD1,OPRD2含义与AND
指令相同,对标志位的影响也与
功能: OR指令完成对两个操作数按位的 ‘或’运 AND指令相同.
算,结果送至目的操作数中,本指令可以进行字节或
字的 ‘或’运算.
2. 两数相或,有一个数为真则值
OPRD1&--OPRD1 OR OPRD2.
316NOTNOT 逻辑非运算指令 NOT
格式: NOT OPRD
1. 其中OPRD可为任一通用寄存
器或存储器操作数.
功能: 完成对操作数按位求反运算(即0变1,1变0),
页码,7/22
----------------------- Page 8-----------------------
结果关回原操作数.
2. 本指梳令可以进行字或字节
‘非’运算.
3. 本指令不影响标志位.
317XORXOR 逻辑异或运算指令 XOR
格式: XOR OPRD1,OPRD2
1. 其在OPRD1、OPRD2的含义与
AND指令相同,对标志位的影响与
功能: 实现两个操作数按位 ‘异或’运算,结果送 与AND指令相同.
至目的操作数中.
2. 相异为真,相同为假.
OPRD1&--OPRD1 XOR OPRD2
318TESTTEST 测试指令 TEST
说明: TEST与AND指令的关系,有
点类似于CMP与SUB指令之间的关
格式: TEST OPRD1,OPRD2
功能: 其中OPRD1、OPRD2的含义同AND指令一样,也
是对两个操作数进行按位的'与'运算,唯一不同之
处是不将'与'的结
果送目的操作数,即本指令对两个操作数 的内容均
不进行修改,仅是在逻辑与操作后,对标志位重新置
319SHLSHL 逻辑左移指令 SHL(Shift logical left)
格式: SHL OPRD1,COUNT
1. 其中OPRD1为目的操作数,可
以是通用寄存器或存储器操作
功能: 对给定的目的操作数左移COUNT次,每次移位 数.
时最高位移入标志位CF中,最低位补零.
2. COUNT代表移位的次数(或位
数).移位一次,COUNT=1;移位多
于1次时,COUNT=(CL),(CL)中为
移位的次数.
3. 例如: SHL AL,1
SHL ALFA[DI] 或者:
SHL ALFA[DI],CL
320SHRSHR 逻辑右移指令 SHR
格式: SHR OPRD1,COUNT
1. 其中OPRD1为目的操作数,可
以是通用寄存器或存储器操作
功能: 本指令实现由COUNT决定次数的逻辑右移操
作,每次移位时,最高位补0,最低位移至标志位CF
2. COUNT代表移位的次数(或位
数).移位一次,COUNT=1;移位多
于1次时,COUNT=(CL),(CL)中为
移位的次数.
3. 影响标志位OF,PF,SF,ZF,CF.
321SALSAL 算术左移指令 SAL(Shift Arithmetic Left)
格式: SAL OPRD1,COUNT
1. 其中OPRD1为目的操作数,可
以是通用寄存器或存储器操作
功能: 其中OPRD1,COUNT与指令SHL相同.本指令与
SHL的功能也完全相同,这是因为逻辑左移指令与算
术左移指令所要完成的操作是一样的.
2. COUNT代表移位的次数(或位
数).移位一次,COUNT=1;移位多
于1次时,COUNT=(CL),(CL)中为
移位的次数.
322SARSAR 算术右移指令 SAR
格式: SAR OPRD1,COUNT
1. 其中OPRD1为目的操作数,可
以是通用寄存器或存储器操作
页码,8/22
----------------------- Page 9-----------------------
功能: 本指令通常用于对带符号数减半的运算中,
因而在每次右移时,保持最高位(符号位)不变,最低
位右移至CF中.
2. COUNT代表移位的次数(或位
数).移位一次,COUNT=1;移位多
于1次时,COUNT=(CL),(CL)中为
移位的次数.
323ROLROL 循环移位指令
格式: ROL OPRD1,COUNT ;不含进位标志位CF在循
1. 本指令组只影响标志CF、
环中的左循环移位指令.
OF.OF由移入CF的内容决定,OF取
决于移位一次后符号位是否改
ROR OPRD1,COUNT ;不含进位示志位CF在循环中的
变,如改变,则OF=1.
右循环移位指令.
2. 由于是循环移位,所以对字节
RCL OPRD1,COUNT ;带进位的左循环移位指令.
移位8次; 对字移位16次,就可恢
复为原操作数.由于带CF的循环
RCR OPRD1,COUNT ;带进位的右循环移位指令.
移位,可以将CF的内容移入,
所以可以利用它实现多字节的循
324RORROR 循环移位指令
1. 本指令组只影响标志CF、
ROL OPRD1,COUNT ;不含进位标志位CF在循环中的
OF.OF由移入CF的内容决定,OF取
左循环移位指令.
决于移位一次后符号位是否改
ROR OPRD1,COUNT ;不含进位示志位CF在循环中的
变,如改变,则OF=1.
右循环移位指令.
RCL OPRD1,COUNT ;带进位的左循环移位指令.
2. 由于循环移位,所以对字节移
RCR OPRD1,COUNT ;带进位的右循环移位指令.
位8次; 对字移位16次,可恢复为
325RCLRCL 循环移位指令
格式: ROL OPRD1,COUNT ;不含进位标志位CF在循
1. 本指令组只影响标志CF、
环中的左循环移位指令.
OF.OF由移入CF的内容决定,OF取
ROR OPRD1,COUNT ;不含进位示志位CF在循环中的
决于移位一次后符号位是否改
右循环移位指令.
变,如改变,则OF=1.
RCL OPRD1,COUNT ;带进位的左循环移位指令.
RCR OPRD1,COUNT ;带进位的右循环移位指令.
2. 由于是循环移位,所以对字节
移位8次; 对字移位16次,就可恢
复为原操作数.由于带CF的循环
移位,可以将CF的内容移入,
所以可以利用它实现多字节的循
326RCRRCR 循环移位指令
格式: ROL OPRD1,COUNT ;不含进位标志位CF在循
1. 本指令组只影响标志CF、
环中的左循环移位指令.
OF.OF由移入CF的内容决定,OF取
决于移位一次后符号位是否改
ROR OPRD1,COUNT ;不含进位示志位CF在循环中的
变,如改变,则OF=1.
右循环移位指令.
2. 由于是循环移位,所以对字节
RCL OPRD1,COUNT ;带进位的左循环移位指令.
移位8次; 对字移位16次,就可恢
复为原操作数.由于带CF的循环
RCR OPRD1,COUNT ;带进位的右循环移位指令.
移位,可以将CF的内容移入,所以
可以利用它实现多字节的循环.
注意: 以上程序中的指令SHR
AL,CL如改为SAR AL,CL,虽然最
高4位可移入低4位,但最高位不
为0,故应加入一条指令AND AL,0
FH.否则,若最高位不为0时,将得
到错误结果.
327JMPJMP 无条件转移指令JMP
格式: JMP OPRD
1. 其中OPRD为转移的目的地址.
程序转移到目的地址所指向的指
页码,9/22
----------------------- Page 10-----------------------
功能: JMP指令将无条件地控制程序转移到目的地
令继续往下执行.
址去执行.当目的地址仍在同一个代码段内,称为段
内转移;当目标地址不在同一个代码段内,则称为段 2. 本组指令对标志位无影响.
间转移.这两种情况都将产生不同的指令代码,以便
能正确地生成目的地址,在 段内转移时,指令只要
3. &1& 段内直接转移指令: JMP
能提供目的地址的段 内偏移量即够了;而在段间转 NEAR 标号
移时,指令应能提供目的地址的段地址及段内偏移
&2& 段内间接转移指令: JMP
&3& 段间直接转移指令: JMP
&4& 段间间接转移指令:JMP
OPRD其中的OPRD为存储器双字操
作数.段间间接转移只能通过存
储器操作数来实现.
条件转移指令 JC
说明: JC为根据标志位CF进行转
格式: JC 标号
功能: CF=1,转至标号处执行
329JNCJNC 条件转移指令JNC
说明: JNC为根据标志位CF进行
转移的指令
格式: JNC标号
功能: CF=0,转至标号处执行
条件转移指令JE/JZ
格式: JE/JZ标号
1. 指令JE与JZ等价,它们是根据
标志位ZF进行转移的指令
功能: ZF=1,转至标号处执
2. JE,JZ均为一条指令的两种助
记符表示方法
条件转移指令JE/JZ
格式: JE/JZ标号
1. 指令JE与JZ等价,它们是根据
标志位ZF进行转移的指令
功能: ZF=1,转至标号处执
2. JE,JZ均为一条指令的两种助
记符表示方法
332JNEJNE 条件转移指令JNE/JNZ
格式: JNE/JNZ 标号
1. 指令JNE与JNZ等价,它们是根
据标志位ZF进行转移的指令
功能: ZF=0,转至标号处执行
2. JNE,JNZ均为一条指令的两种
助记符表示方法
333JNZJNZ 条件转移指令JNE/JNZ
格式: JNE/JNZ 标号
1. 指令JNE与JNZ等价,它们是根
据标志位ZF进行转移的指令
功能: ZF=0,转至标号处执行
2. JNE,JNZ均为一条指令的两种
助记符表示方法
条件转移指令JS
说明: JS是根据符号标志位SF进
行转移的指令
格式: JS 标号
功能: SF=1,转至标号处执行
335JNSJNS 条件转移指令JNS
说明: JNS是根据符号标志位SF
进行转移的指令
格式: JNS 标号
功能: SF=0,转至标号处执行
页码,10/22
----------------------- Page 11-----------------------
条件转移指令JO
说明: JO是根椐溢出标志位OF进
行转移的指令
格式: JO 标号
功能: OF=1,转至标号处执行
337JNOJNO 条件转移指令JNO
说明: JNO是根椐溢出标志位OF
进行转移的指令
格式: JNO 标号
功能: OF=0,转至标号处执行
条件转移指令JP/JPE
格式: JP/JPE 标号
1. 指令JP与JPE,它们是根据奇
偶标志位PF进行转移的指令
功能: PF=1,转至标号处执行
2. JP,JPE均为一条指令的两种
助记符表示方法
339JPEJPE 条件转移指令JP/JPE
格式: JP/JPE 标号
1. 指令JP与JPE,它们是根据奇
偶标志位PF进行转移的指令
功能: PF=1,转至标号处执行
2. JP,JPE均为一条指令的两种
助记符表示方法
340JNPJNP 条件转移指令JNP/JPO
格式: JNP/JPO 标号
1. 指令JNP与JPO,它们是根据奇
偶标志位PF进行转移的指令
功能: PF=0,转至标号处执行
2. JNP,JPO均为一条指令的两种
助记符表示方法
341JPOJPO 条件转移指令JNP/JPO
格式: JNP/JPO 标号
1. 指令JNP与JPO,它们是根据奇
偶标志位PF进行转移的指令
功能: PF=0,转至标号处执行
2. JNP,JPO均为一条指令的两种
助记符表示方法
条件转移指令JA/JNBE
格式: JA/JNBE标号
1. 例如两个符号数a,b比较
时,a&b(即CF=0,ZF=0)时转移.因
功能: 为高于/不低于等于的转移指令
为单一标志位CF=0,只表示a&=b.
2. JA/JNBE是同一条指令的两种
不同的助记符.
3. 该指令用于无符号数进行条
343JNBEJNBE 条件转移指令JA/JNBE
格式: JA/JNBE标号
1. 例如两个符号数a,b比较
时,a&b(即CF=0,ZF=0)时转移.因
功能: 为高于/不低于等于的转移指令
为单一标志位CF=0,只表示a&=b.
2. JA/JNBE是同一条指令的两种
不同的助记符.
3. 该指令用于无符号数进行条
344JAEJAE 条件转移指令JAE/JNB
格式: JAE/JNB 标号
1. JAE/JNB是同一条指令的两种
不同的助记符.
页码,11/22
----------------------- Page 12-----------------------
功能: 为高于等于/不低于的转移指令
2. 该指令用于无符号数进行条
条件转移指令JAE/JNB
格式: JAE/JNB 标号
1. JAE/JNB是同一条指令的两种
不同的助记符.
功能: 为高于等于/不低于的转移指令
2. 该指令用于无符号数进行条
条件转移指令JB/JNAE
说明: 该指令用于无符号数的条
格式: JB/JNAE 标号
功能: 低于/不高于等于时转移
347JNAEJNAE 条件转移指令JB/JNAE
说明: 该指令用于无符号数的条
格式: JB/JNAE 标号
功能: 低于/不高于等于时转移
条件转移指令JBE/JNA
说明: 该指令用于无符号数的条
格式: JBE/JNA 标号
功能: 低于等于/不高于时转移
条件转移指令JBE/JNA
说明: 该指令用于无符号数的条
格式: JBE/JNA 标号
功能: 低于等于/不高于时转移
条件转移指令JG/JNLE
说明: 用于带符号数的条件转移
格式: JG/JNLE 标号
功能: 大于/不小于等于时转移
351JNLEJNLE 条件转移指令JG/JNLE
说明: 用于带符号数的条件转移
格式: JG/JNLE 标号
功能: 大于/不小于等于时转移
条件转移指令JGE/JNL
说明: 用于带符号数的条件转移
格式: JGE/JNL标号
功能: 大于等于/不小于时转移
条件转移指令JGE/JNL
说明: 用于带符号数的条件转移
格式: JGE/JNL标号
功能: 大于等于/不小于时转移
条件转移指令JL/JNGE
说明: 用于带符号数的条件转移
格式: JL/JNGE标号
功能: 小于/不大于等于时转移
355JNGEJNGE 条件转移指令JL/JNGE
说明: 用于带符号数的条件转移
格式: JL/JNGE标号
功能: 小于/不大于等于时转移
条件转移指令JLE/JNG
说明: 用于带符号数的条件转移
格式: JLE/JNG 标号
功能: 小于等于/不大于时转移
页码,12/22
----------------------- Page 13-----------------------
357JNGJNG 条件转移指令JLE/JNG
说明: 用于带符号数的条件转移
格式: JLE/JNG 标号
功能: 小于等于/不大于时转移
358LOOPLOOP 循环控制指令LOOP
格式: LOOP 标号
1. 本指令是用CX寄存器作为计
数器,来控制程序的循环.
功能: (CX)&--(CX)-1,(CX)&&0,则转移至标号处循
环执行, 直至(CX)=0,继续执行后继指令.
2. 它属于段内SHORT短类型转
移,目的地址必须距本指令在-
128到+127个字节的范围内.
359LOOPZLOOPZ 循环控制指令LOOPZ/LOOPE
LOOPZLOOPZ
格式: LOOPZ/LOOPE 标号
1. 本指令是用CX寄存器作为计
数器,来控制程序的循环.
功能: (CX)&--(CX)-1,(CX)&&0 且ZF=1时,转至标
2. 它属于段内SHORT短类型转
移,目的地址必须距本指令在-
128到+127个字节的范围内.
3. 以上两种助记符等价.
360LOOPELOOPE 循环控制指令LOOPZ/LOOPE
LOOPELOOPE
格式: LOOPZ/LOOPE 标号
1. 本指令是用CX寄存器作为计
数器,来控制程序的循环.
功能: (CX)&--(CX)-1,(CX)&&0 且ZF=1时,转至标
2. 它属于段内SHORT短类型转
移,目的地址必须距本指令在-
128到+127个字节的范围内.
3. 以上两种助记符等价.
361LOOPNZLOOPNZ循环控制指令LOOPNZ/LOOPNE
LOOPNZLOOPNZ
格式: LOOPNZ/LOOPNE 标号
1. 本指令是用CX寄存器作为计
数器,来控制程序的循环.
功能: (CX)&--(CX)-1,(CX)&&0 且ZF=0时,转至标
2. 它属于段内SHORT短类型转
移,目的地址必须距本指令在-
128到+127个字节的范围内.
3. 以上两种助记符等价.
362LOOPNELOOPNE循环控制指令LOOPNZ/LOOPNE
LOOPNELOOPNE
格式: LOOPNZ/LOOPNE 标号
1. 本指令是用CX寄存器作为计
数器,来控制程序的循环.
功能: (CX)&--(CX)-1,(CX)&&0 且ZF=0时,转至标
2. 它属于段内SHORT短类型转
移,目的地址必须距本指令在-
128到+127个字节的范围内.
3. 以上两种助记符等价.
363CALLCALL 过程调用指令 CALL
格式: CALL OPRD
1. 其中OPRD为过程的目的地址.
功能: 过程调用指令
2. 过程调用可分为段内调用和
段间调用两种.寻址方式也可以
分为直接寻址和间接寻址两种.
3. 本指令不影响标志位.
364RETRET 返回指令 RET
由于在过程定义时,已指明其近
页码,13/22
----------------------- Page 14-----------------------
(NEAR)或远(FAR)的属性,所以
功能: 当调用的过程结束后实现从过程返回至原调 RET指令根据段内调用与段间调
用程序的下一条指令,本指令不影响标志位.
用,执行不同的操作
对段内调用: 返回时,由堆栈弹
出一个字的返回地址的段内偏移
对段外调用: 返回时,由堆栈弹
出的第一个字为返回地址的段内
偏移量,将其送入IP中,由堆栈弹
出第二个字为返回地址的段基
址,将其送入CS中.
365MOVSMOVS 字符串传送指令 MOVS
格式: MOVS OPRD1,OPRD2
1. 其中OPRD2为源串符号地
址,OPRD1为目的串符号地址.
2. 字节串操作: 若DF=0,则作
功能: OPRD1&--OPRD2.
加, 若DF=1,则作减.
3. 对字串操作时: 若DF=0,则作
加,若DF=1,则作减,.
4. 在指令中不出现操作数时,字
节串传送格式为MOVSB、字串传
送格式为MOVSW.
5. 本指令不影响标志位.
366MOVSBMOVSB 字符串传送指令 MOVS
MOVSBMOVSB
格式: MOVS OPRD1,OPRD2
1. 其中OPRD2为源串符号地
址,OPRD1为目的串符号地址.
2. 字节串操作: 若DF=0,则作
功能: OPRD1&--OPRD2.
加, 若DF=1,则作减.
3. 对字串操作时: 若DF=0,则作
加,若DF=1,则作减,.
4. 在指令中不出现操作数时,字
节串传送格式为MOVSB、字串传
送格式为MOVSW.
5. 本指令不影响标志位.
367MOVSWMOVSW 字符串传送指令 MOVS
MOVSWMOVSW
格式: MOVS OPRD1,OPRD2
1. 其中OPRD2为源串符号地
址,OPRD1为目的串符号地址.
2. 字节串操作: 若DF=0,则作
功能: OPRD1&--OPRD2.
加, 若DF=1,则作减.
3. 对字串操作时: 若DF=0,则作
加,若DF=1,则作减,.
4. 在指令中不出现操作数时,字
节串传送格式为MOVSB、字串传
送格式为MOVSW.
5. 本指令不影响标志位.
368CMPSCMPS 字符串比较指令
格式: CMPS OPRD1,OPRD2
1. 其中OPRD2为源串符号地
址,OPRD1为目的串符号地址.
页码,14/22
----------------------- Page 15-----------------------
2. 本指令影响标志位AF、CF、
功能: 由SI寻址的源串中数据与由DI寻址的目的串 OF、SF、PF、ZF.本指令可用来
中数据进行比较,比较结果送标志位,而不改变操作 检查二个字符串是否相同,可以
使用循环控制方法对整串进行比
同时SI,DI将自动调整.
3. 与MOVS相似,CMPS指令也可以
不使用操作数,此时可用指令
CMPSB或CMPSW分别表示字节串比
较或字串比较.
369CMPSBCMPSB 字符串比较指令
CMPSBCMPSB
格式: CMPS OPRD1,OPRD2
1. 其中OPRD2为源串符号地
址,OPRD1为目的串符号地址.
2. 本指令影响标志位AF、CF、
功能: 由SI寻址的源串中数据与由DI寻址的目的串 OF、SF、PF、ZF.本指令可用来
中数据进行比较,比较结果送标志位,而不改变操作 检查二个字符串是否相同,可以
使用循环控制方法对整串进行比
同时SI,DI将自动调整.
3. 与MOVS相似,CMPS指令也可以
不使用操作数,此时可用指令
CMPSB或CMPSW分别表示字节串比
较或字串比较.
370CMPSWCMPSW 字符串比较指令
CMPSWCMPSW
格式: CMPS OPRD1,OPRD2
1. 其中OPRD2为源串符号地
址,OPRD1为目的串符号地址.
2. 本指令影响标志位AF、CF、
功能: 由SI寻址的源串中数据与由DI寻址的目的串 OF、SF、PF、ZF.本指令可用来
中数据进行比较,比较结果送标志位,而不改变操作 检查二个字符串是否相同,可以
使用循环控制方法对整串进行比
同时SI,DI将自动调整.
3. 与MOVS相似,CMPS指令也可以
不使用操作数,此时可用指令
CMPSB或CMPSW分别表示字节串比
较或字串比较.
371SCASSCAS 字符串搜索指令 SCAS
格式: SCAS OPRD
1. 其中OPRD为目的串符号地址.
2. 本指令影响标志AF、CF、
功能: 把AL(字节串)或AX(字串)的内容与由DI寄存 OF、PF、SF、ZF.该指令可查找
器寻址的目的串中的数据相减,结果置标志位,但不 字符串中的一个关键字,只需在
改变任一操作数本身.
本指令执行前,
地址指针DI自动调整.
把关键字放在AL(字节)或AX(字
串 )中,用重复前缀可在整串中
指令中不使用操作数时,可用指
令格式SCASB,SCASW,分别表示字
节串或字串搜索指令.
372SCASBSCASB 字符串搜索指令 SCAS
SCASBSCASB
格式: SCAS OPRD
1. 其中OPRD为目的串符号地址.
2. 本指令影响标志AF、CF、
功能: 把AL(字节串)或AX(字串)的内容与由DI寄存 OF、PF、SF、ZF.该指令可查找
器寻址的目的串中的数据相减,结果置标志位,但不 字符串中的一个关键字,只需在
改变任一操作数本身.
本指令执行前,
页码,15/22
----------------------- Page 16-----------------------
地址指针DI自动调整.
把关键字放在AL(字节)或AX(字
串 )中,用重复前缀可在整串中
指令中不使用操作数时,可用指
令格式SCASB,SCASW,分别表示字
节串或字串搜索指令.
373SCASWSCASW 字符串搜索指令 SCAS
SCASWSCASW
格式: SCAS OPRD
1. 其中OPRD为目的串符号地址.
2. 本指令影响标志AF、CF、
功能: 把AL(字节串)或AX(字串)的内容与由DI寄存 OF、PF、SF、ZF.该指令可查找
器寻址的目的串中的数据相减,结果置标志位,但不 字符串中的一个关键字,只需在
改变任一操作数本身.
本指令执行前,
地址指针DI自动调整.
把关键字放在AL(字节)或AX(字
串 )中,用重复前缀可在整串中
指令中不使用操作数时,可用指
令格式SCASB,SCASW,分别表示字
节串或字串搜索指令.
374LODSLODS 取字符串元素指令 LODS
格式: LODS OPRD 其中OPRD为源字符串符号地址.
1. 本指令不影响标志位.
功能: 把SI寻址的源串的数据字节送AL或数据字送 2. 当不使用操作数时,可用LODS
AX中去, 并根据DF的值修改地址指针SI进行自动调 (字节串)或LODSW(字串)指令.
375STOSSTOS 字符串存储指令 STOS
格式: STOS OPRD
1. 其中OPRD为目的串符号地址.
功能: 把AL(字节)或AX(字)中的数据存储到DI为目
的串地址指针所寻址的存储器单元中去.指针DI将
2. 本指令不影响标志位.当不使
根据DF的值进行自动调整.
用操作数时,可用STOSB或STOSW
分别表示字节串或字串的操作.
376REPREP 重复前缀的说明
格式: REP ;CX&&0 重复执行字符串指令
1. REP与MOVS或STOS串操作指令
REPZ/REPE ;CX&&0 且ZF=1重复执行字符串指令
相结合使用,完成一组字符的传
REPNZ/REPNE ;CX&&0 且ZF=0重复执行字符串指令 送或建立一组相同数据的字符
功能: 在串操作指令前加上重复前缀,可以对字符
2. REPZ/REPE常用与CMPS串操作
串进重复处理.由于加上重复前缀后,对应的指令代 指令结合使用, 可以完成两组字
码是不同的,所以指令的功能便具有重复处理的功
符串的比较.
能,重复的次数存放在CX寄存器中.
3. REPZ/REPE常与SCAS指令结合
使用,可以完成在一个字符串中
搜索一个关键字.
4. REPNZ/REPNE与CMPS指令结合
使用,表示当串未结束(CX=1)且
当对应串元素不相同(ZF=0)时,
继续重复执行串比较指令.
377REPZREPZ 重复前缀的说明
格式: REP ;CX&&0 重复执行字符串指令
1. REPZ/REPE常用与CMPS串操作
REPZ/REPE ;CX&&0 且ZF=1重复执行字符串指令
指令结合使用, 可以完成两组字
REPNZ/REPNE ;CX&&0 且ZF=0重复执行字符串指令 符串的比较.
2. REPZ/REPE常与SCAS指令结合
页码,16/22
----------------------- Page 17-----------------------
功能: 在串操作指令前加上重复前缀,可以对字符
使用,可以完成在一个字符串中
串进重复处理.由于加上重复前缀后,对应的指令代 搜索一个关键字.
码是不同的,所以指令的功能便具有重复处理的功
能,重复的次数存放在CX寄存器中.
3. REPNZ/REPNE与CMPS指令结合
使用,表示当串未结束(CX=1)且
当对应串元素不相同(ZF=0)时,
继续重复执行串比较指令.
4. REPNZ/REPNE与SCAS指令结合
使用,表示串未结束(CX=1)且当
关键字与串元素不相同(ZF=0)
时,继续重复执行串搜索指令.
378REPEREPE 重复前缀的说明
格式: REP ;CX&&0 重复执行字符串指令
1. REPZ/REPE常用与CMPS串操作
REPZ/REPE ;CX&&0 且ZF=1重复执行字符串指令
指令结合使用, 可以完成两组字
REPNZ/REPNE ;CX&&0 且ZF=0重复执行字符串指令 符串的比较.
2. REPZ/REPE常与SCAS指令结合
功能: 在串操作指令前加上重复前缀,可以对字符
使用,可以完成在一个字符串中
串进重复处理.由于加上重复前缀后,对应的指令代 搜索一个关键字.
码是不同的,所以指令的功能便具有重复处理的功
能,重复的次数存放在CX寄存器中.
3. REPNZ/REPNE与CMPS指令结合
使用,表示当串未结束(CX=1)且
当对应串元素不相同(ZF=0)时,
继续重复执行串比较指令.
4. REPNZ/REPNE与SCAS指令结合
使用,表示串未结束(CX=1)且当
关键字与串元素不相同(ZF=0)
时,继续重复执行串搜索指令.
379REPNZREPNZ 重复前缀的说明
REPNZREPNZ
格式: REP ;CX&&0 重复执行字符串指令
1. REPZ/REPE常用与CMPS串操作
REPZ/REPE ;CX&&0 且ZF=1重复执行字符串指令
指令结合使用, 可以完成两组字
REPNZ/REPNE ;CX&&0 且ZF=0重复执行字符串指令 符串的比较.
2. REPZ/REPE常与SCAS指令结合
使用,可以完成在一个字符串中
搜索一个关键字.
3. REPNZ/REPNE与CMPS指令结合
使用,表示当串未结束(CX=1)且
当对应串元素不相同(ZF=0)时,
继续重复执行串比较指令.
4. REPNZ/REPNE与SCAS指令结合
使用,表示串未结束(CX=1)且当
关键字与串元素不相同(ZF=0)
时,继续重复执行串搜索指令.
380REPNEREPNE 重复前缀的说明
REPNEREPNE
格式: REP ;CX&&0 重复执行字符串指令
1. REPZ/REPE常用与CMPS串操作
REPZ/REPE ;CX&&0 且ZF=1重复执行字符串指令
指令结合使用, 可以完成两组字
REPNZ/REPNE ;CX&&0 且ZF=0重复执行字符串指令 符串的比较.
2. REPZ/REPE常与SCAS指令结合
使用,可以完成在一个字符串中
搜索一个关键字.
3. REPNZ/REPNE与CMPS指令结合
使用,表示当串未结束(CX=1)且
当对应串元素不相同(ZF=0)时,
继续重复执行串比较指令.
4. REPNZ/REPNE与SCAS指令结合
页码,17/22
----------------------- Page 18-----------------------
使用,表示串未结束(CX=1)且当
关键字与串元素不相同(ZF=0)
时,继续重复执行串搜索指令.
381CLCCLC 处理器控制指令-标志位操作指令
说明: 例如串操作中的程序,经
常用CLD指令清方向标志使DF=0
,在串操作指令执行时,按增量的
CLC ;置CF=0
方式修改吕指针.
STC ;置CF=1
CMC ;置CF=(Not CF)进位标志求反
CLD ;置DF=0
STD ;置DF=1
CLI ;置IF=0,CPU禁止响应外部中断
STI ;置IF=1,使CPU允许向应外部中断
功能: 完成对标志位的置位、复位等操作.
382STCSTC 处理器控制指令-标志位操作指令
说明: 例如串操作中的程序,经
常用CLD指令清方向标志使DF=0
,在串操作指令执行时,按增量的
CLC ;置CF=0
方式修改吕指针.
STC ;置CF=1
CMC ;置CF=(Not CF)进位标志求反
CLD ;置DF=0
STD ;置DF=1
CLI ;置IF=0,CPU禁止响应外部中断
STI ;置IF=1,使CPU允许向应外部中断
功能: 完成对标志位的置位、复位等操作.
383CMCCMC 处理器控制指令-标志位操作指令
说明: 例如串操作中的程序,经
常用CLD指令清方向标志使DF=0
,在串操作指令执行时,按增量的
CLC ;置CF=0
方式修改吕指针.
STC ;置CF=1
CMC ;置CF=(Not CF)进位标志求反
CLD ;置DF=0
STD ;置DF=1
CLI ;置IF=0,CPU禁止响应外部中断
STI ;置IF=1,使CPU允许向应外部中断
功能: 完成对标志位的置位、复位等操作.
384CLDCLD 处理器控制指令-标志位操作指令
说明: 例如串操作中的程序,经
常用CLD指令清方向标志使DF=0
,在串操作指令执行时,按增量的
CLC ;置CF=0
方式修改吕指针.
STC ;置CF=1
CMC ;置CF=(Not CF)进位标志求反
CLD ;置DF=0
STD ;置DF=1
CLI ;置IF=0,CPU禁止响应外部中断
STI ;置IF=1,使CPU允许向应外部中断
功能: 完成对标志位的置位、复位等操作.
385STDSTD 处理器控制指令-标志位操作指令
说明: 例如串操作中的程序,经
常用CLD指令清方向标志使DF=0
,在串操作指令执行时,按增量的
CLC ;置CF=0
方式修改吕指针.
STC ;置CF=1
CMC ;置CF=(Not CF)进位标志求反
CLD ;置DF=0
STD ;置DF=1
CLI ;置IF=0,CPU禁止响应外部中断
STI ;置IF=1,使CPU允许向应外部中断
功能: 完成对标志位的置位、复位等操作.
386CLICLI 处理器控制指令-标志位操作指令
说明: 例如串操作中的程序,经
常用CLD指令清方向标志使DF=0
,在串操作指令执行时,按增量的
页码,18/22
----------------------- Page 19-----------------------
CLC ;置CF=0
方式修改吕指针.
STC ;置CF=1
CMC ;置CF=(Not CF)进位标志求反
CLD ;置DF=0
STD ;置DF=1
CLI ;置IF=0,CPU禁止响应外部中断
STI ;置IF=1,使CPU允许向应外部中断
功能: 完成对标志位的置位、复位等操作.
387STISTI 处理器控制指令-标志位操作指令
说明: 例如串操作中的程序,经
常用CLD指令清方向标志使DF=0
,在串操作指令执行时,按增量的
CLC ;置CF=0
方式修改吕指针.
STC ;置CF=1
CMC ;置CF=(Not CF)进位标志求反
CLD ;置DF=0
STD ;置DF=1
CLI ;置IF=0,CPU禁止响应外部中断
STI ;置IF=1,使CPU允许向应外部中断
功能: 完成对标志位的置位、复位等操作.
388HLTHLT 处理器暂停指令 HLT
1. 本指令不影响标志位.
功能: 使处理器处于暂时停机状态.
2. 由执行HLT引起的暂停,只有
RESET(复位)、NMI(非屏蔽中断
请求)、INTR(可屏蔽的外部中断
请求)信号可以使
其退出暂停状态.它可用于等待
中断的到来或多机系统的同步操
389WAITWAIT 处理器等待指令 WAIT
说明: 本指令不影响标志位.
格式: WAIT
功能: 本指令将使处理器检测TEST端脚,当TEST有
效时,则退出等待状态执行下条指令,否则处理器处
于等待状态,直到TEST有效.
390ESCESC 处理器交权指令 ESC
格式: ESC EXTOPRD,OPRD
1. 其中EXTOPRD为外部操作
码,OPRD为源操作数.
功能: 使用本指令可以实现协处理器出放在ESC指
令代码中的6位常数,该常数指明协处理器要完成的 2. 本指不影响标志位.
当源操作数为存储器变量时,则取出该存储器操作
数传送给协处理器.
391NOPNOP 空操作指令 NOP
说明: 本指令不影响标志位.
功能: 本指令不产生任何结果,仅消耗几个时钟周
期的时间,接着执行后续指令,常用于程序的延时
392LOCKLOCK 封锁总线指令 LOCK
无可用信息!用户可自行添加!
格式: LOCK
功能: 指令是一个前缀,可放在指令的前面,告诉
CPU在执行该指令时,不允许其它设备对总线进行访
输入指令 IN
页码,19/22
----------------------- Page 20-----------------------
格式: IN AL,(AL)&--(n)
1. 其中n为8位的端口地址,当字
IN AX,(AX)&--(n+1),(n)
节输入时,将端口地址n+1的内容
IN AL,DX ;(AL)&--[(DX)]
送至AH中,端口地址n的内容送AL
IN AX,DX ;(AX)&--[(DX)+1],[(DX)]
功能: 输入指令
2. 端口地址也可以是16位的,但
必须将16位的端口地址送入DX
中.当字节寻址时,由DX内容作端
口地址的内容送至AL中;
当输入数据字时,[(DX)+1]送AH,
[(DX)]送AL中,用符号:(AX)&--
[(DX)+1],[(DX)]表示.
394OUTOUT 输出指令 OUT
格式: OUT n,AL ;(n)&--(AL)
1. OUT n,AX ;(n+1),(n)&--
功能: 输出指令
OUT DX,AL ;[(DX)]&--(AL)
OUT DX,AX ;[(DX)+1],[(DX)]&-
2. 输入指令及输出指令对标志
位都不影响.
395 INTOINTO 溢出中断指令 INTO(INTerrupt if Overflow)
格式: INTO
1. 本指令影响标志位IF及TF.
功能: 本指令检测OF标志位,当OF=1时,说明已发生 2. 本指令可用于溢出处理,当
溢出,立即产生一个中断类型4的中断,当OF=0时,
OF=1时,产生一个类型4的软中
本指令不起作用.
断.在中断处理程序中完成溢出
的处理操作.
396 INTINT 软中断指令 INT
说明: 操作过程与INTO指令雷
同,只需将10H改为n*4即可.所
格式: INT n 其中n为软中断的类型号.
以,本指令也将影响标志位IF及
功能: 本指令将产生一个软中断,把控制转向一个
类型号为n的软中断,该中断处理程序入口地址在中
断向量表的n*4地址
处的二个存储器字(4个单元)中.
397 IRETIRET 中断返回指令 IRET
格式: IRET
1. 本指令将影响所有标志位.
功能: 用于中断处理程序中,从中断程序的断点处
2. 无论是软中断,还是硬中断,
返回,继续执行原程序.
本指令均可使其返回到中断程序
的断点处继续执行原程序.
一、一、状状态态寄存器寄存器
一一、、状状态态寄存器寄存器
PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标
志构成,如下所示:
①OF(Overflow Flag)溢出标志。溢出时为1,否则置0。
②SF(Sign Flag)符号标志。结果为负时置1,否则置0.
③ZF(Zero Flag)零标志,运算结果为0时ZF位置1,否则置0.
④CF(Carry Flag)进位标志,进位时置1,否则置0.
⑤AF(Auxiliary carry Flag)辅助进位标志,记录运算时第3位(半个字节)产生的进位置。
有进位时1,否则置0.
⑥PF(Parity Flag)奇偶标志。结果操作数中1的个数为偶数时置1,否则置0.
控制标志位:
页码,20/22
----------------------- Page 21-----------------------
⑦DF(Direction Flag)方向标志,在串处理指令中控制信息的方向。
⑧IF(Interrupt Flag)中断标志。
⑨TF(Trap Flag)陷井标志。
二、 二、 直接直接标志标志转转移移((88位位寻寻址址))
二二、 、 直接直接标标志志转转移移 ((88位位寻寻址址))
如...则转移
如...则转移
不为零/不等于
奇偶位为偶
奇偶位为奇
三、三、间间接接标标志志转转移移((88位位寻寻址址))
三三、、间间接接标标志志转转移移 ((88位位寻寻址址))
如...则转移
JA/JNBE(比较无符号数)
高于/不低于或等于
JAE/JNB(比较无符号数)
高于或等于/不低于
JB/JNAE(比较无符号数)
低于/不高于或等于
JBE/JNA(比较无符号数)
低于或等于/不高于
JG/JNLE(比较带符号数)
(S异或O)或Z=0
大于/不小于或等于
JGE/JNL(比较带符号数)
大于或等于/不小于
JL/JNGE(比较带符号数)
小于/不大于或等于
JLE/JNG(比较带符号数)
(S异或O)或Z=1
小于或等于/不大于
四、四、无无条条件件转转移指令移指令
四四、、无无条条件件转转移指令移指令
相对短跳转(8位),使rel8处的代码位下一条指令
相对跳转(16位),使rel16处的代码位下一条指令
绝对跳转(16位),下一指令地址在r/m16中给出
绝对跳转(32位),下一指令地址在r/m32中给出
JMP ptr16:16
远距离绝对跳转, 下一指令地址在操作数中
JMP ptr16:32
远距离绝对跳转, 下一指令地址在操作数中
JMP m16:16
远距离绝对跳转, 下一指令地址在内存m16:16中
JMP m16:32
远距离绝对跳转, 下一指令地址在内存m16:32中
五、五、1616位位//3232位位寻寻址方式址方式
五五、、1616位位//3232位位寻寻址方式址方式
跳转类型 跳转的条件(标志位)
JA rel16/32
(CF=0 and ZF=0)
JAE rel16/32
JB rel16/32
JBE rel16/32
(CF=1 or ZF=1)
JC rel16/32
JE rel16/32
JZ rel16/32
JG rel16/32
(ZF=0 and SF=OF)
JGE rel16/32
JL rel16/32
JLE rel16/32
(ZF=1 or SF&&OF)
JNA rel16/32
(CF=1 or ZF=1)
JNAE rel16/32
不大于等于
JNB rel16/32
JNBE rel16/32
不小于等于
(CF=0 and ZF=0)
JNC rel16/32
JNE rel16/32
JNG rel16/32
(ZF=1 or SF&&OF)
JNGE rel16/32
不大于等于
页码,21/22
----------------------- Page 22-----------------------
JNL rel16/32
JNLE rel16/32
不小于等于
(ZF=0 and SF=OF)
JNO rel16/32
JNP rel16/32
JNS rel16/32
非零 (不等
JNZ rel16/32
JO rel16/32
JP rel16/32
JPE rel16/32
JPO rel16/32
JS rel16/32
JZ rel16/32
为零(等于)
注:一些指令操作数的含义说明:
rel8 表示 8 位相对地址
rel16 表示 16 位相对地址
rel16/32 表示 16或32 位相对地址
r/m16 表示16位寄存器
r/m32 表示32位寄存器
test逻辑与运算结果为零,就把ZF(零标志)置1;
cmp 算术减法运算结果为零,就把ZF(零标志)置1
页码,22/22
更多相关文档

我要回帖

更多关于 电信宽带如何更换套餐 的文章

 

随机推荐