




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理整理 江苏大学非计算机专业使用,本人私人资料;微机原理97FLAGS标志寄存器:6个状态标志位和3个控制标志CF:进位标志位。当进行加减法运算时,若最高位向前有进借位CF=1,无CF=0。PF:奇偶标志位。当运算结果的低8位中1的个数为偶数时PF=1,为奇数时PF=0。AF:辅助进位标志。D3向D4有借进位发生时AF=1,无借进位发生AF=0。ZF:零位标志。当运算结果为零时ZF=1,运算结果不为零时ZF=0。SF:符号标志位。当运算结果的最高位为1时SF=1,最高位为0时SF=0。OP:溢出标志位。当运算结果超出了带符号数的范围,即溢出时OF=1,未溢出时OF=0。(D7为符号位,说
2、明:D7,D6,D5,D4,D3,D2,D1,D0)332算数运算指令算数运算指令;加,减,乘,除有符号数的溢出:OF无符号数的溢出:CF指令对操作数的要求:单操作数指令中的操作数不允许使用立即数 双操作数指令中,立即数只能作为源操作数,不允许源操作数和目的操作数都是存储器。1, 加法运算指令(不允许段寄存器作为操作数和两个都是存储器)1) ADD普通加法指令(对全部6个状态标志位都会产生影响)ADD OPRD1,OPRD2 ;OPRD1+OPRD2送到OPRD1中去ADD SI,BX是错误的 ;不允许两个操作数都是存储器操作数 例:MOV AL,7EH ADD AL,5BH 程序执行后,AL
3、=D9H,即11011001B, D9H>7FH(8位带符号数的最大值) OF=1 D9H<FFH(8位无符号数的最大值) CF=0 所有状态标志位AF=0,CF=0,OF=1,PF=0,SF=1,ZF=02) ADC带进位(CF)位的加法指令(对全部6个状态标志位都会产生影响)ADC OPRD1,OPRD2 ;OPRD1+OPRD2+CF送到OPRD1中去不允许两个操作数都是存储器操作数 例:设CF=1,写出以下指令执行后的结果MOV AL,7EH ADC AL,0ABH 指令执行后:AL=7EH+0ABH+1=2AH,且CF=13) INC加1指令(不影响CF,影响其它5个状态
4、标志)INC OPRD ;OPRD+1送到OPRD中去OPRD不能是立即数通常用于在循环程序中修改地址指针及循环次数2, 减法指令(不允许段寄存器作为操作数和两个都是存储器)1) SUB不考虑借位的减法指令(对全部6个状态标志位都会产生影响)SUB OPRD1,OPRD2 不允许两个操作数都是存储器操作数 例:SUB AL,BP+SI ;将SS:BP+SI单元的内容送到AL中去 基址变址寻址:基址:BX或BP 变址:SI或DI DSJBX变址 SS JBP变址2) SBB考虑借位的减法指令(对全部6个状态标志位都会产生影响)SUB OPRD1,OPRD2 ;将OPRD1-OPRD2-CF送到O
5、PRD1中不允许两个操作数都是存储器操作数3) DEC减1指令(不影响CF,影响其它5个状态标志)DEC OPRD OPRD不能是立即数4) NEG求补指令(对全部6个状态标志位都会产生影响)NEG OPRD (求负数的绝对值) ;用0-OPRDCF通常为1,除非OPRD为0OF通常为0,除非OPRD为80H(-128)或8000H(-32768),执行后操作数不变,但是OF为1。5) CMP比较指令(仅影响6个状态标志位)CMP OPRD1,OPRD2 ;OPRD1-OPRD2,结果不送回OPRD1不允许两个操作数都是存储器操作数 比较两个操作数的大小关系。 相等:ZF=1 不相等:无符号数
6、,CMP AX,BX CF=0,AX>BX CF=1,AX<BX 有符号数,CMP AX,BX SF,OF相同,AX>BX SF,OF不同,AX<BX例: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中字乘
7、法:OPRD*AX 送到DX:AX中这里,源操作数OPRD可以是8位或16位的寄存器或存储器。乘法指令要求两操作数字长相等,且不能为立即数。MUL BX ;用AX*BX送到DX:AX中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个标志位均无影响)
8、DIV OPRD隐含寻址方式,隐含了被除数,除数OPRD不能为立即数除数OPRD 8位,则被除数AX 16位 字位拓展指令CBW AX/OPRD放入AL,AX%OPRD放入AH除数OPRD 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指令外,其余
9、4条指令对操作数的要求与MOV指令相同,且使OF=CF=0,其余值不定 1)AND逻辑“与”指令 AND OPRD1,OPRD2 ;按位相与,仅1与1=1 作用之一:使目标操作数的某些位保持不变,把其他位清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,其余不变作用之二:使操作数不变,但影响6个状态标志位,OF=CF=0 OR AX,AX3)N
10、OT逻辑“非”指令(对6个标志位均无影响)NOT OPRD ;OPRD按位取反OPRD 不能是立即数NOT WORD PTRSI4)XOR逻辑“异或”指令XOR OPRD1,OPRD2 ;将两操作数按位进行“异或”异或操作:两操作数相同时为0,不同时为1 作用:使某寄存器清零 XOR AX,AX ;使AX清零5)TEST测试指令TEST OPRD1,OPRD2 ;仅影响标志位,工作与AND相同TEST AL,02H ;若AL中D1位为1,则ZF=0,否则ZF=12,移位指令(影响6个状态标志位) 作用:实现寄存器操作数或内存操作数进行指定次数的位移 移动1次,指令直接给出,2位及以上,移动位数
11、要放在CL寄存器中。1) 非循环移位指令算数移位指令针对有符号数,逻辑移位指令针对无符号数 SAL和SHL 算数左移和逻辑左移执行完全相同的操作 SAL OPRD,1/CL SHL OPRD,1/CL 将OPRD中的内容左移一位或CL位,每移一位,左边的最高位移入标志位CF,在最低位补零。 若移动一次,操作数的最高位和CF标志位状态不相同,则OF=1 状态相同,则OF=0 (判断移位前后的符号位是否一致。)例:MOV AL,41HSHL AL,1执行结果为AL=82H,CF=0,OF=1M若视AL为无符号数,则它没有溢出(82H<FFH) 若视AL为有符号数,则溢出(82H>7FH
12、)(原先AL是41H,而后移位后吗,D7位从0变为了1,产生了溢出。)例:把以DATA为首址的两个连续单元中的16位无符号数乘以10LEA SI,DATAMOV AX,SISHL AX,1 将二进制无符号数左移一位相当于将这个数乘以2MOV BX,AXMOV CL,2 左移两位,则乘以4SHL AX,CLADD AX,BXHLTSHR逻辑右移指令 SHR OPRD,1/CL OPRD顺序向右移1位或CL位,右边最低位移入CF,左边最高位补零 移动一次,若移动后的最高位与起先的不同,则OF=1,如果相同,则OF=0。例:MOV AL,82HSHR AL,1执行结果:AL=41H,CF=0,OF=
13、1 每逻辑右移一位,相当于无符号的目标操作数除以2,可以用SHR指令完成把一个数除以2I的运算 SAR算数右移指令 SAR OPRD,1/CL OPRD顺序向右移1位或CL位,右边最低位移入CF,左边最高位保持不变 不影响OF,AF例:MOV AL,82HSAR AL,1执行结果:AL=C1H,CF=0。2) 循环移位指令如果最高位与CF不相同,则OF=1;相同,则OF=0 ROL不带CF的循环左移指令 ROL OPRD,1/CL OPRD向左移动1位或CL指定位,最高位移入CF,同时再移入最低位构成循环例:MOV AL,82HROL AL,1执行结果:AL=05H,CF=1,OF=1ROR不
14、带CF的循环右移指令 ROR OPRD,1/CL OPRD向右移动1位CL指定位,最低位移入CF,同时再移入最低高位构成循环例:MOV AL,82HROR AL,1执行结果:AL=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一起向右移动1位或CL 指定位,最低位进入CF,CF中原来的值进入最高位 4.1汇编语言源程序机器语言:计算机硬件系统唯一能够直接理解和执行的语言汇编语言:使用指令助记符
15、,符号地址,标号和伪指令等来书写程序4.2伪指令 4.2.1数据定义伪指令 1格式:变量名 伪操作 操作数 ,操作数 常用的数据定义伪指令有5种(1) DB:定义变量为字节类型。变量中的每个操作数都占一个字节(00FFH)。DB伪指令也常用来定义字符串。(2) DW:定义变量未字类型。DW伪指令后面每个操作数都占用2个字节。在内存中存放是,低字节低地址,高字节高地址。(3) DD:定义双字类型的变量。DD伪指令后面的每个操作数都占4个字节。在内存中存放时,同样是低字节低地址,高字节高地址。(4) DQ:定义四字类型的变量。(5) DT:定义十字节类型的变量。DT伪操作后面的每个操作数都为10个
16、字节的压缩BCD数。 2. 操作数 操作数(大于等于一个):常数,表达式或字符串 操作数的值不能超过由伪操作所定义的数据类型限定的范围 例如:DB 操作数范围:0255(无符号数) -128+127(有符号数) 字符和字符串都必须放在单引号中。 超过两个字符的字符串只能用DB指令。 DATA DB 11H,33H NUM DW 100*5+88 STR DB HELLO! DATA2 DW ? ;为变量DATA2分配2个字节的空间,初始值为任意值。SUM DQ 0011223344556677H DATA2 DW 11H,22H,3344H由低到高存入 最下面的最高77H 00H66H 11H55H 00H44H 22H33H 44H22H 33H11H00HDATA1 DB 11H,2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年宠物食品营养配方考题试题及答案
- 宠物营养学与其他学科的关联试题及答案
- 二手车评估与风险防控的结合试题及答案
- 房地产工作年终述职报告
- 重视药物使用中的患者反馈试题及答案
- 考前冲刺2024食品质检员考试试题及答案
- 食品质量问题源头追溯与考核试题及答案
- 汽车维修工专业术语解析试题及答案
- 全新视觉传播设计相关试题及答案
- 培训管理人员在岗能力提升计划
- 2024年员工知识产权与保密协议范本:企业知识产权保护实务3篇
- WB/T 1019-2002菱镁制品用轻烧氧化镁
- GB/T 1957-2006光滑极限量规技术条件
- GB/T 13350-2008绝热用玻璃棉及其制品
- 2023年阿勒泰地区阿勒泰市法院书记员招聘笔试题库及答案解析
- AQT3044-2013氨气检测报警仪技术规范
- 中医体质辨识共57张课件
- 魔幻泡泡秀七彩体验馆介绍
- 育苗花卉种子采购合同 修
- 表面工程学第十二章-表面微细加工技术
- 聚乙烯塑料袋检验记录新
评论
0/150
提交评论