- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.5.3逻辑运算及移位指令
2.5.3 逻辑运算和移位指令;1、逻辑运算指令;(1)逻辑非指令——NOT;(2)逻辑与指令——AND;格式:OR 目标,源;(4)逻辑异或指令——XOR;(5)测试指令——TEST;2、移位指令;(2) 逻辑右移指令——SHR;3、循环移位指令;注:;2.5.4 串操作指令;1.串操作指令均采用隐含寻址方式。 ;(3)操作重复的次数必须存放在CX寄存器中.;4. 重复前缀通常与串指令连用,目的是使得串指令执行多次,执行的次数由CX寄存器的值或ZF位决定。
具体格式为:
重复前缀名 串指令名
如:REP MOVSB; ;(2)相等时/结果为0时重复前缀REPE/REPZ
格式:REPE/REPZ 串指令
功能:当ZF=1且CX≠0时,重复执行指定的串指令。每执行一次,(CX)← (CX)-1 。当ZF≠1或者CX=0时停止重复。
使用:通常与CMPS串指令连用,在一个串中查找指定串。 ;(3)不相等时/结果不为0时重复前缀REPNE/REPNZ
格式:REPNE/REPNZ 串指令
功能:
当ZF=0且CX≠0时,重复执行指定的串指令。每执行一次,(CX)← (CX)-1 。当ZF≠0或者CX=0时停止重复。
使用:
通常与SCAS串指令连用,在一个串中查找指定字符或数据。 ;(1)MOVS 串传送指令
格式:①MOVS 目标串,源串(不提倡)
②MOVSB 字节串传送
③MOVSW 字串传送
指令功能:
从源串中取一个元素送目标串中,根据DF修改SI和DI,使之指向下(或上)一元素(+1或者+2 )。若加上REP前缀,则每传送完一个元素,CX减量,直到CX=0为止。 ;…;DATA SEGMENT
ABUF DB 100 DUP(?)
DATA ENDS
EXTRA SEGMENT
BBUF DB 100 DUP(?)
EXTRA ENDS
……
CLD ;DF=0
MOV AX, DATA
MOV DS, AX
MOV AX, EXTRA
MOV ES, AX
MOV CX,100;(2)CMPS 串比较指令
格式:①CMPS 目标串,源串
②CMPSB 字节串比较
③CMPSW 字串比较
指令功能:
将源串的一个元素和目标串中相对应的一个元素进行比较,根据结果特征置标志位,并修改SI和DI,使之指向下(上)一元素。
通常在CMPS指令前加重复前缀REPE/REPZ,用来寻找两个串中的第一个不相同数据。 ;…; CLD ;DF=0
MOV CX,100
MOV SI,2400H
MOV DI,1200H
REPE CMPSB ;串比较,直到ZF=0或CX=0
AND CX,0FFFFH
JZ same
DEC SI
MOV BX,SI;第一个不相同字节偏移地址送BX
MOV AL,[SI];第一个不相同字节内容送AL
JMP STOP
same: MOV BX,0 ;两串完全相同,BX=0
STOP: HLT;(3)SCAS 串扫描指令
格式:①SCAS 目标串
②SCASB 字节串扫描
③SCASW 字串扫描
指令功能:
用来从目标串中查找某个关键字,要求查找的关键字应事先置入AX或AL寄存器中。
SCAS指令的操作是:
1.将AX/AL寄存器中的关键字和DI所指向的目标串中一个元素相比较,不传送结果,只根据结果置标志位;
2.修改DI寄存器内容指向下(上)一个元素。
通常在SCAS指令之前加重复前缀REPNE/REPNZ,用来从目标串中寻找关键字,操作一直进行到ZF=1或CX=0为止。 ;(4) LODS 取串指令
格式:①LODS 源串
②LODSB 取字节串
③LODSW 取字串
指令功能:
1.将源串中SI所指向的元素送到AX/AL寄存器中;
2.修改SI内容指向下一个元素。
该指令一般不加重复前缀,常和其他指令结合起来完成复
文档评论(0)