最新微机应用05PPT课件.ppt
《最新微机应用05PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机应用05PPT课件.ppt(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机应用微机应用0505钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,200620062第5章 控制转移和程序结构5.1 5.1 目标地址寻址方式目标地址寻址方式5.1.15.1.1转移范围转移范围5.1.25.1.2寻址方式寻址方式5.1.3 5.1.3 无条件转移指令无条件转移指令5.2 5.2 分支程序结构分支程序结构5.2.1 5.2.1 条件转移指令条件转移指令5.2.2 5.2.2 单分支结构单分支结构5.2.3 5.2.3 双分支结构双分支结构5.2.4 5.2.4 多分支结构多分支结构5.3 5.3 循环程序结构循环程序结构5.3.
2、1 5.3.1 循环指令循环指令5.3.2 5.3.2 计数控制循环计数控制循环5.3.3 5.3.3 条件控制循环条件控制循环5.4 5.4 子程序结构子程序结构5.4.1 5.4.1 子程序指令子程序指令5.4.2 5.4.2 子程序设计子程序设计5.4.3 5.4.3 参数传递参数传递5.4.4 5.4.4 程序模块程序模块钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,200620063钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,200620064钱晓捷,微型计算机原理及应用,清华大学出版社,钱
3、晓捷,微型计算机原理及应用,清华大学出版社,200620065钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,200620066钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,200620067钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,200620068钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,200620069例题5-1无条件转移程序-2;数据段数据段00020002 00000000 00000000fv
4、arfvardd?dd?;代码段代码段002B002B B8 FF05 B8 FF05labl4:labl4:mov ax,type far ptr labl5mov ax,type far ptr labl5002E002E EA-0034 R EA-0034 Rjmpjmp far ptr labl5far ptr labl500330033 90 90nopnop00340034 B8 0047 R B8 0047 Rlabl5:labl5:mov ax,offset labl6mov ax,offset labl600370037 A3 0002 R A3 0002 Rmov word
5、 ptr fvar,axmov word ptr fvar,ax003A003A BA-R BA-Rmov dx,seg labl6mov dx,seg labl6003D003D 89 16 0004 R 89 16 0004 R mov word ptr fvar+2,dxmov word ptr fvar+2,dx00410041 FF 2E 0002 R FF 2E 0002 R jmpjmp fvarfvar00450045 90 90nopnop00460046labl6:labl6:存储器间接远转移存储器间接远转移 直接远转移直接远转移调试调试钱晓捷,微型计算机原理及应用,清华大
6、学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200610条件转移指令Jccl根据指定的条件确定程序是否发生转移根据指定的条件确定程序是否发生转移Jcc labelJcc label;条件满足,发生转移;否则,顺序执行下一条指令条件满足,发生转移;否则,顺序执行下一条指令lLABELLABEL表示目标地址,采用段内相对寻址方式表示目标地址,采用段内相对寻址方式1616位位80 x8680 x86微处理器:只是微处理器:只是-128-128+127+127间的短转移间的短转移3232位位IA-32IA-32微处理器:达到微处理器:达到3232位的全偏移量位的全偏移量l条件转移指
7、令不影响标志,但要利用标志条件转移指令不影响标志,但要利用标志lcccc表示利用标志判断的条件,表示利用标志判断的条件,1616种、两类种、两类单个标志状态作为条件单个标志状态作为条件两数大小关系作为条件两数大小关系作为条件钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200611转移条件cc:单个标志状态JZ/JEJZ/JEZF=1ZF=1 Jump if Zero/EqualJump if Zero/EqualJNZ/JNEJNZ/JNEZF=0ZF=0 Jump if Not Zero/Not EqualJump if Not Zer
8、o/Not EqualJSJSSF=1SF=1 Jump if SignJump if SignJNSJNSSF=0SF=0 Jump if Not SignJump if Not SignJP/JPEJP/JPEPF=1PF=1 Jump if Parity/Parity EvenJump if Parity/Parity EvenJNP/JPOJNP/JPOPF=0PF=0 Jump if Not Parity/Parity OddJump if Not Parity/Parity OddJOJOOF=1OF=1 Jump if OverflowJump if OverflowJNOJNO
9、OF=0OF=0 Jump if Not OverflowJump if Not OverflowJCJCCF=1CF=1 Jump if CarryJump if CarryJNCJNCCF=0CF=0 Jump if Not CarryJump if Not Carry钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200612转移条件cc:两数大小关系JB/JNAEJB/JNAECF=1CF=1Jump if Below/Not Above or EqualJump if Below/Not Above or EqualJNB/JAEJ
10、NB/JAECF=0CF=0Jump if Not Below/Above or EqualJump if Not Below/Above or EqualJBE/JNAJBE/JNACF=1CF=1或或ZF=1ZF=1Jump if Below/Not AboveJump if Below/Not AboveJNBE/JAJNBE/JACF=0CF=0且且ZF=0ZF=0Jump if Not Below or Equal/AboveJump if Not Below or Equal/AboveJL/JNGEJL/JNGESFOFSFOFJump Jump if if Less/Not L
11、ess/Not Greater Greater or or EqualEqualJNL/JGEJNL/JGESF=OFSF=OF Jump if Not Less/Greater or EqualJump if Not Less/Greater or EqualJLE/JNGJLE/JNGZFOFZFOF或或ZF=1ZF=1Jump Jump if if Less Less or or Equal/Not Equal/Not GreaterGreaterJNLE/JGJNLE/JGSF=OFSF=OF且且 ZF=0ZF=0 Jump Jump if if Not Not Less Less o
12、r or Equal/GreaterEqual/Greater多个助记符方便记忆多个助记符方便记忆钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200613单个标志状态作为条件lJZ(JE)JZ(JE)和和JNZ(JNE)JNZ(JNE):利用零位标志:利用零位标志ZFZF判断结果是零(相等)还是非零(不等)判断结果是零(相等)还是非零(不等)lJSJS和和JNSJNS:利用符号标志:利用符号标志SFSF判断结果是负还是正判断结果是负还是正lJOJO和和JNOJNO:利用溢出标志:利用溢出标志OFOF判断结果是溢出还是没有溢出判断结果是溢出
13、还是没有溢出lJP(JPE)JP(JPE)和和JNP(JPO)JNP(JPO):利用奇偶标志:利用奇偶标志PFPF判断结果低字节判断结果低字节“1”1”的个数是偶数还是奇数的个数是偶数还是奇数lJCJC和和JNCJNC:利用进位标志:利用进位标志CFCF判断结果是有进位(为判断结果是有进位(为1 1)还是无进位(为)还是无进位(为0 0)钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200614例题5-2实现指令CBW功能的程序-1l80868086指令指令CBWCBW(等于(等于IA-32IA-32指令指令MOVSX AX,ALMOVSX
14、 AX,AL)如果如果ALAL最高位为最高位为0 0,则设置,则设置AHAH0 0如果如果ALAL最高位为最高位为1 1,则设置,则设置AHAHFFHFFHl如何判断如何判断ALAL最高位是最高位是“0”0”,还是,还是“1”1”涉及一个位,可采用位操作类指令涉及一个位,可采用位操作类指令保留最高位不变,其他位变成保留最高位不变,其他位变成0 0逻辑与逻辑与“80H”80H”结果为结果为0 0,ALAL最高位最高位0 0;否则是;否则是1 1运算结果是否为运算结果是否为0 0,零位标志,零位标志ZFZF反映反映JZJZ或或JNZJNZ指令判断并转移指令判断并转移演示演示TEST指令生成条件指令
15、生成条件钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200615例题5-2实现指令CBW功能的程序-2mov al,bvarmov al,bvar;取出要判断的数据取出要判断的数据test al,80htest al,80h;测试最高位测试最高位jzjz next1 next1;最高位为最高位为0 0(ZFZF1 1),转移到标号),转移到标号NEXT1NEXT1mov ah,0ffhmov ah,0ffh;最高位为最高位为1 1,顺序执行:设置,顺序执行:设置AHAHFFHFFHjmpjmp done done;无条件跳过另一个分支无条
16、件跳过另一个分支next1:next1:mov ah,0mov ah,0;最高位为最高位为0 0转移到此执行:设置转移到此执行:设置AHAH0 0done:done:等于零转移等于零转移钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200616例题5-2实现指令CBW功能的程序-3mov al,bvarmov al,bvar;取出要判断的数据取出要判断的数据test al,80htest al,80h;测试最高位测试最高位jnzjnz next2 next2;最高位为最高位为1 1(ZFZF0 0),转移到标号),转移到标号NEXT2NEX
17、T2mov ah,0mov ah,0;最高位为最高位为0 0,顺序执行:设置,顺序执行:设置AHAH00H00Hjmpjmp done done;无条件跳过另一个分支无条件跳过另一个分支next2:next2:mov ah,0ffhmov ah,0ffh;最高位为最高位为1 1转移到此执行:设置转移到此执行:设置AHAHFFHFFHdone:done:不等于零转移不等于零转移钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200617例题5-2实现指令CBW功能的程序-4mov al,bvarmov al,bvar;取出要判断的数据取出要判断
18、的数据cmp al,0cmp al,0;与与0 0比较比较jnsjns next3 next3;最高位为最高位为0 0(SFSF0 0),转移到标号),转移到标号NEXT3NEXT3mov ah,0ffhmov ah,0ffh;最高位为最高位为1 1,顺序执行:设置,顺序执行:设置AHAHFFHFFHjmpjmp done done;无条件跳过另一个分支无条件跳过另一个分支next3:next3:mov ah,0mov ah,0;最高位为最高位为0 0转移到此执行:设置转移到此执行:设置AHAH00H00Hdone:done:符号为正转移符号为正转移钱晓捷,微型计算机原理及应用,清华大学出版社
19、,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200618例题5-3实现奇偶校验程序-1l奇奇偶偶校校验验是是数数据据通通信信、存存储储等等过过程程中中最最常常用用的的校验方法校验方法l奇奇校校验验:使使包包括括校校验验位位在在内内的的数数据据中中为为“1”1”的个数恒为奇数的个数恒为奇数l偶偶校校验验:使使包包括括校校验验位位在在内内的的数数据据中中为为“1”1”的个数恒为偶数(包括的个数恒为偶数(包括0 0)l奇奇偶偶校校验验只只能能检检测测出出奇奇数数个个位位出出错错的的情情况况,不不能纠错能纠错l实现奇偶校验非常简单实现奇偶校验非常简单硬件上使用异或等电路硬件上使用异或等电路
20、软件上使用异或等指令,奇偶校验标志软件上使用异或等指令,奇偶校验标志PFPF钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200619例题5-3实现奇偶校验程序-2mov ah,1mov ah,1;1;1号功能号功能int 21hint 21h;键盘输入,返回值在键盘输入,返回值在ALALand al,7fhand al,7fh;最高位置最高位置“0”0”,标志,标志PFPF反映反映“1”1”的个数的个数jnpjnp next1next1;个数为奇数,则转向个数为奇数,则转向NEXT1NEXT1or al,80hor al,80h;最高位置
21、最高位置“1”1”、其他位不变、其他位不变 next1:next1:mov Tdata,almov Tdata,al;保存待发送的数据保存待发送的数据功能编号功能编号 AHAH01H01H出口参数出口参数 ALALASCIIASCII字符字符功能说明功能说明 键盘输入一个字符(回显)键盘输入一个字符(回显)个数为奇数转移个数为奇数转移钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200620例题5-3实现奇偶校验程序-3mov ah,1mov ah,1;1;1号功能号功能int 21hint 21h;键盘输入,返回值在键盘输入,返回值在AL
22、ALand al,7fhand al,7fh;最高位置最高位置“0”0”,标志,标志PFPF反映反映“1”1”的个数的个数jpjp next2next2;个数为偶数,转向个数为偶数,转向NEXT2NEXT2jmpjmp donedone;个数为奇数,转向保存个数为奇数,转向保存next2:next2:or al,80hor al,80h;最高位置最高位置“1”1”、其他位不变、其他位不变 done:done:mov Tdata,almov Tdata,al;保存待发送的数据保存待发送的数据个数为偶数转移个数为偶数转移 何不合二为一何不合二为一jnp done钱晓捷,微型计算机原理及应用,清华大
23、学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200621例题5-4统计“1”位个数程序-1mov ah,1mov ah,1int 21hint 21h;输入一个字符输入一个字符xor ah,ahxor ah,ah;用用AHAH寄存器记录寄存器记录1 1的个数,故先清的个数,故先清0 0mov ecx,8mov ecx,8;ASCII;ASCII码有码有8 8位,进行位,进行8 8次循环判断次循环判断again:again:shl al,1shl al,1;从高位开始从高位开始jncjnc next next;不为不为1 1,无需处理,无需处理inc ahinc ah;为为1
24、 1,个数加,个数加1 1next:next:loop againloop again钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200622例题5-4统计“1”位个数程序-2mov ah,1mov ah,1int 21hint 21h;输入一个字符输入一个字符xor ah,ahxor ah,ah;用用AHAH寄存器记录寄存器记录1 1的个数,故先清的个数,故先清0 0again:again:cmp al,0cmp al,0;也可用也可用“TEST AL,0FFH”TEST AL,0FFH”jeje done doneshr al,1sh
25、r al,1;从低位开始从低位开始jncjnc next next;不为不为1 1,无须处理,无须处理inc ahinc ah;为为1 1,个数加,个数加1 1next:next:jmp againjmp againdone:done:好在哪里好在哪里?钱晓捷,微型计算机原理及应用,清华大学出版社,钱晓捷,微型计算机原理及应用,清华大学出版社,2006200623两数大小关系作为条件l无符号数用高(无符号数用高(AboveAbove)、低()、低(BelowBelow)低于(不高于等于):低于(不高于等于):JBJB(JNAEJNAE)不低于(高于等于):不低于(高于等于):JNBJNB(JA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 微机 应用 05 PPT 课件
限制150内