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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

FLAGS标志寄存器剖析Word文档格式.docx

1、CF指令对操作数的要求:单操作数指令中的操作数不允许使用立即数 双操作数指令中,立即数只能作为源操作数,不允许源操作数和目的操作数都是存储器。1, 加法运算指令(不允许段寄存器作为操作数和两个都是存储器)1) ADD普通加法指令(对全部6个状态标志位都会产生影响)ADD OPRD1,OPRD2 ;OPRD1+OPRD2送到OPRD1中去ADD SI,BX是错误的 ;不允许两个操作数都是存储器操作数 例:MOV AL,7EH ADD AL,5BH 程序执行后,AL=D9H,即11011001B, D9H7FH(8位带符号数的最大值) OF=1 D9HBX CF=1,AX SF,OF不同,AX例:

2、3-24在内存数据段从DATA开始的单元中存放了两个8位无符号数,试比较他们的大小,并将大的数送MAX单元、LEA BX,DATAMOVE AL,BXINC BXCMP AL,BXJNC DONEMOV AL,BXDONE:MOV MAX,AL HLT3, 乘法指令MUL无符号乘法指令(影响CF和OF)MUL OPRD隐含寻址方式,隐含目标操作数AX(DX),源操作数由指令给出。字节乘法:OPRD*AL 送到AX中字乘法:OPRD*AX 送到DX:AX中这里,源操作数OPRD可以是8位或16位的寄存器或存储器。乘法指令要求两操作数字长相等,且不能为立即数。MUL BX ;用AX*BX送到DX:

3、MUL BYTE PTRSI ;AL*SI送到AX中MUL DL ;用AL*DL送到AX中设AL=0FEH,CL=11H,两数均为无符号数,求AL与CL的乘积。MUL CL指令执行后:AX=10DEH,因AH中的结果不为零,故CF=OF=1。乘积的高半部分不为0,则CF=OF=1,代表AH或DX中包含乘积的有效数字 高半部分为0,则CF=OF=04, 除法指令DIV 无符号数除法指令(对6个标志位均无影响) DIV OPRD隐含寻址方式,隐含了被除数,除数OPRD不能为立即数除数OPRD 8位,则被除数AX 16位 字位拓展指令CBW AX/OPRD放入AL,AX%OPRD放入AH除数OPRD

4、 16位,则被除数 DX(高):AX(低) 32位 字位拓展指令CWD DX:AX/OPRD 放入AX,DX:AX%OPRD放入DX用除法指令计算7FA2H/03DDH MOV AX,7FA2H MOV BX,03DDH CWD ;AX扩展为DX=0000H,AX=7FA2H DIV BX ;商=AX=0021H,余数=DX=0025H3.3.3 逻辑运算与移位指令1,逻辑运算指令 除NOT指令外,其余4条指令对操作数的要求与MOV指令相同,且使OF=CF=0,其余值不定 1)AND逻辑“与”指令 AND OPRD1,OPRD2 ;按位相与,仅1与1=1 作用之一:使目标操作数的某些位保持不变

5、,把其他位清0AND AL,0FH ;将AL中的高4位清0,低4位保持不变作用之二;使操作数不变,但影响6个状态标志位,OF=CF=0AND AX,AX 2)OR逻辑“或”指令 OR OPRD1,OPRD2 ;使目标操作数的某些位保持不变,将另外一些位置1 OR AL,20H ;将AL中的D5位置1,其余不变作用之二: OR AX,AX3)NOT逻辑“非”指令(对6个标志位均无影响)NOT OPRD ;OPRD按位取反OPRD 不能是立即数NOT WORD PTRSI4)XOR逻辑“异或”指令XOR OPRD1,OPRD2 ;将两操作数按位进行“异或”异或操作:两操作数相同时为0,不同时为1

6、作用:使某寄存器清零 XOR AX,AX ;使AX清零5)TEST测试指令TEST OPRD1,OPRD2 ;仅影响标志位,工作与AND相同TEST AL,02H ;若AL中D1位为1,则ZF=0,否则ZF=12,移位指令(影响6个状态标志位)实现寄存器操作数或内存操作数进行指定次数的位移 移动1次,指令直接给出,2位及以上,移动位数要放在CL寄存器中。1) 非循环移位指令算数移位指令针对有符号数,逻辑移位指令针对无符号数 SAL和SHL 算数左移和逻辑左移执行完全相同的操作 SAL OPRD,1/CL SHL OPRD,1/CL 将OPRD中的内容左移一位或CL位,每移一位,左边的最高位移入

7、标志位CF,在最低位补零。 若移动一次,操作数的最高位和CF标志位状态不相同,则OF=1 状态相同,则OF=0 (判断移位前后的符号位是否一致。)MOV AL,41HSHL AL,1执行结果为AL=82H,CF=0,OF=1M若视AL为无符号数,则它没有溢出(82H7FH)(原先AL是41H,而后移位后吗,D7位从0变为了1,产生了溢出。把以DATA为首址的两个连续单元中的16位无符号数乘以10LEA SI,DATAMOV AX,SISHL AX,1 将二进制无符号数左移一位相当于将这个数乘以2MOV BX,AXMOV CL,2 左移两位,则乘以4SHL AX,CLADD AX,BXHLTSH

8、R逻辑右移指令 SHR OPRD,1/CL OPRD顺序向右移1位或CL位,右边最低位移入CF,左边最高位补零 移动一次,若移动后的最高位与起先的不同,则OF=1,如果相同,则OF=0。MOV AL,82HSHR AL,1执行结果:AL=41H,CF=0,OF=1 每逻辑右移一位,相当于无符号的目标操作数除以2,可以用SHR指令完成把一个数除以2I的运算 SAR算数右移指令 SAR OPRD,1/CL OPRD顺序向右移1位或CL位,右边最低位移入CF,左边最高位保持不变 不影响OF,AFSAR AL,1AL=C1H,CF=0。2) 循环移位指令如果最高位与CF不相同,则OF=1;相同,则OF

9、=0 ROL不带CF的循环左移指令 ROL OPRD,1/CL OPRD向左移动1位或CL指定位,最高位移入CF,同时再移入最低位构成循环ROL AL,1执行结果:AL=05H,CF=1,OF=1ROR不带CF的循环右移指令 ROR OPRD,1/CL OPRD向右移动1位CL指定位,最低位移入CF,同时再移入最低高位构成循环ROR AL,1AL=41H,OF=1,CF=0 RCL 带CF的循环左移指令 RCL OPRD,1/CL OPRD连同CF一起向左移动1位或CL指定位,最高位进入CF,CF原来的值进入最后一位。 RCR 带CF的循环右移指令 RCR OPRD,1/CL OPED连同CF

10、一起向右移动1位或CL 指定位,最低位进入CF,CF中原来的值进入最高位4.1汇编语言源程序机器语言:计算机硬件系统唯一能够直接理解和执行的语言汇编语言:使用指令助记符,符号地址,标号和伪指令等来书写程序4.2伪指令 4.2.1数据定义伪指令 1格式:变量名 伪操作 操作数 ,操作数 常用的数据定义伪指令有5种(1) DB:定义变量为字节类型。变量中的每个操作数都占一个字节(00FFH)。DB伪指令也常用来定义字符串。(2) DW:定义变量未字类型。DW伪指令后面每个操作数都占用2个字节。在内存中存放是,低字节低地址,高字节高地址。(3) DD:定义双字类型的变量。DD伪指令后面的每个操作数都

11、占4个字节。在内存中存放时,同样是低字节低地址,高字节高地址。(4) DQ:定义四字类型的变量。(5) DT:定义十字节类型的变量。DT伪操作后面的每个操作数都为10个字节的压缩BCD数。 2. 操作数 操作数(大于等于一个):常数,表达式或字符串 操作数的值不能超过由伪操作所定义的数据类型限定的范围 例如:DB 操作数范围:0255(无符号数) -128+127(有符号数) 字符和字符串都必须放在单引号中。 超过两个字符的字符串只能用DB指令。 DATA DB 11H,33H NUM DW 100*5+88 STR DB HELLO! DATA2 DW ? ;为变量DATA2分配2个字节的空

12、间,初始值为任意值。SUM DQ 0011223344556677H DATA2 DW 11H,22H,3344H由低到高存入 最下面的最高77H 00H66H 11H55H 00H44H 22H33H 44H22H 33H11H00HDATA1 DB 11H,22H,33H,44H DATA2 DB ABCD,66H11H 41H A22H 42H B33H 43H C44H 44H D 66HDATA3 DD 11H*2,22H,33445566H22H33H44H55H66H3.重复操作符 DUP DATA1 DB 20 DUP(?) ;为变量DATA1分配20个字节的空间,初始值为任意值 DATA3 DB 20 DUP(30H);为变量DATA3分配20个字节的空间,初值均为30H例4-34.2.2 符号定义伪指令

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

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