最新微机原理与接口技术第6章2PPT课件.ppt
《最新微机原理与接口技术第6章2PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理与接口技术第6章2PPT课件.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理与接口技术第微机原理与接口技术第6 6章章2 2分析题意,确定算法分析题意,确定算法根据算法画出程序框图根据算法画出程序框图根据框图编写程序根据框图编写程序上机调试程序上机调试程序执行程序执行程序按照自上而下的设计方法,设计一个汇编程序的步骤:按照自上而下的设计方法,设计一个汇编程序的步骤:486CODESEGMENTUSE16ASSUMECS:CODEBEG:MOVBX,5678HMOVCX,16LAST:MOVAL,0ROLBX,1JNCNEXTMOVAL,1NEXT:MOVAH,0EHINT10HLOOPLASTMOVAH,4CHINT21HCODEENDSENDBEGADCAL
2、,0数数BX,16 CXBX,16 CXC C标标=?=?1AL1AL调调BIOS.0EHBIOS.0EHCX-1CXCX-1CXCX=0CX=00AL0ALBXBX左移一位左移一位10NY返返DOSDOS源程序清单:源程序清单:复合分支复合分支判断的条件是复合条件,称复合判断判断的条件是复合条件,称复合判断复合分支程序结构为:复合分支程序结构为:条件条件1和条件和条件2.满足否?满足否?程序段程序段1程序段程序段2YNEg:Eg:某科室某科室9人,统计月收入在人,统计月收入在800900间的人数,并用十进制数显示间的人数,并用十进制数显示复合分支复合分支 分析:月收入是无符号数,对一批数处理
3、应该用间址。分析:月收入是无符号数,对一批数处理应该用间址。数轴数轴:N1(800)N2(900)N1(800)N2(900)多分支多分支判断条件后有多个出口,判断一次只能选择判断条件后有多个出口,判断一次只能选择一个分支。一个分支。多分支程序结构为:多分支程序结构为:1条件属哪种条件属哪种情况?情况?程序段程序段1程序段程序段n+m.程序段程序段nnn+m例例.多分支段内转移多分支段内转移要求:键入要求:键入0 0,转,转P0P0程序段程序段 键入键入1 1,转,转P1P1程序段程序段 键入键入9 9,转,转P9P9程序段程序段思路:思路:用比较指令配合直接转移指令实现用比较指令配合直接转移
4、指令实现 CMP CMP 键入字符,键入字符,00 JE P0 JE P0 CMP CMP 键入字符,键入字符,11 JE P1 JE P1 用转移地址表配合间接转移指令实现用转移地址表配合间接转移指令实现多分支多分支486DATASEGMENTUSE16TABDWP0,P1,P9;汇编后自动装入相应的偏移地址汇编后自动装入相应的偏移地址MESGDB0DH,0AH,strike09:$DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXAGA:MOVAH,9MOVDX,OFFSETMESGINT21HMOVAH,
5、1INT21HCMPAL,0JCAGACMPAL,9JAAGASUBAL,30HMOVZXBX,ALADDBX,BX;2BXBXMOVSI,OFFSETTABJMPBX+SI;DS:BX+SIIPP0:P1:P9:CODEENDSENDBEG或或:MOVBX,BX+SIJMPBX;BXIP源程序清单:源程序清单:循环程序设计循环程序设计循环程序的组成:循环程序的组成:循环准备循环准备 循环体循环体 循环控制循环控制1.1.循环程序的结构循环程序的结构Y Y预置循环次数预置循环次数其他准备工作其他准备工作循环体循环体循环减循环减1 1计数计数退出循环退出循环结果为结果为0?0?N N(a(a)单
6、单循循环环结结构构(b(b)双双循循环环结结构构结果为结果为0?0?循环体循环体内循环减内循环减1 1计数计数结果为结果为0?0?外循环减外循环减1 1计数计数退出循环退出循环预置外循环次数预置外循环次数其他准备工作其他准备工作预置内循环次数预置内循环次数其他准备工作其他准备工作N NN NY YY YEg:Eg:假设从假设从BUFBUF单元单元开始为一个开始为一个 ASCII ASCII码字符串码字符串,找出其中找出其中的最大数送屏幕显的最大数送屏幕显示。示。循环程序设计循环程序设计思路:思路:ASCASC码数为无符号数,码数为无符号数,无符号数的最小数为无符号数的最小数为0 0Y YN N
7、N N数据区首址数据区首址DS:BXDS:BX无符号最小数无符号最小数ALAL数据个数数据个数CXCXBX ALBX ALBX=AL?BX=AL?BX+1 BXBX+1 BXCX-1 CXCX-1 CX显示结果显示结果返回返回DOSDOSCX=0CX=0?Y Y486DATASEGMENTUSE16BUFDBQWERTYUIOP123COUNTEQU$-BUF;统计串长度统计串长度MAXDBMAX=,?,0DH,0AH,$DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXMOVAL,0;无符号最小数无符号最小数
8、 0 AL 0 ALLEABX,BUF;串首址偏移量串首址偏移量BXBXMOVCX,COUNT;串长度串长度CXCX LAST:CMPBX,AL;比较比较JCNEXTMOVAL,BX;大数大数ALALNEXT:INCBXLOOPLAST;循环计数循环计数MOVMAX+4,AL ;最大数最大数MAX+4 MAX+4 单元单元MOVAH,9MOVDX,OFFSETMAXINT21H;显示结果显示结果MOVAH,4CHINT21H;返回返回 DOS DOSCODEENDSENDBEG 源程序清单源程序清单1:486DATASEGMENTUSE16BUFDBQWERTYUIOP123FLAGDB1;设
9、置串结束标志设置串结束标志MAXDBMAX=,?,0DH,0AH,$DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXMOVAL,0;无符号最小数无符号最小数 0 AL 0 ALLEABX,BUF;串首址偏移量串首址偏移量BXBXLAST:CMPBYTEPTRBX,-1;BX=;BX=串结束标志串结束标志?JEDISP;是是,转转CMPBX,ALJCNEXTMOVAL,BX;大数大数ALALNEXT:INCBXJMPLASTDISP:MOVMAX+4,AL;最大数最大数MAX+4 MAX+4 单元单元MOVAH
10、,9MOVDX,OFFSETMAXINT21H;显示结果显示结果MOVAH,4CHINT21H;返回返回 DOS DOSCODEENDSENDBEG 源程序清单源程序清单2:汇编程序设计举例汇编程序设计举例 代代 码码 转转 换换代码转换代码转换 常见的代码转换有:常见的代码转换有:二进制数二进制数显示显示 二进制数二进制数十进制数十进制数显示显示 二进制数二进制数十六进制数十六进制数显示显示 BCD BCD码数码数二进制数二进制数代码转换代码转换A一.一.二进制数显示:二进制数显示:例例.把键盘输入的一位数把键盘输入的一位数(0(09),9),转换成等值二进数显示转换成等值二进数显示显示的格
11、式要求如下:显示的格式要求如下:PleaseEnter:ERROR!PleaseEnter:9=00001001B代码转换代码转换思路:思路:键盘缓冲区中是键入字符的键盘缓冲区中是键入字符的ASCASC码。码。0 09 9的的ASCASC码为码为30H30H39H39H。二进制数每一位代码的判断:二进制数每一位代码的判断:本程序采用两种格式设计源程序:本程序采用两种格式设计源程序:一种是一种是EXEEXE文件编程格式,文件编程格式,另一种是另一种是COMCOM文件编程格式。文件编程格式。RCLRCL0 0SALSALROLROLCFCFCFCFCFCF程序框图:程序框图:AL-30HBL AL
12、-30HBL=屏幕屏幕,8CX,8CX 0 0 屏屏幕幕1 1 屏屏幕幕CX-1 CXCX-1 CXB B 屏幕屏幕,返回返回DOSDOSN NN N给出操作提示给出操作提示键盘输入键盘输入ALALAL=0AL=09?9?CF=?CF=?CX=0?CX=0?BLBL左移一位左移一位Y Y显示错误信息显示错误信息 Y Y0 01 1.486DATASEGMENTUSE16MESG1DBPleaseEnter!,0DH,0AH,$MESG2DB-Error!$DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXMOV
13、AH,9MOVDX,OFFSETMESG1INT21H;显示操作提示显示操作提示MOVAH,1INT21H;等待键入等待键入CMPAL,3AHJNCERROR;99转转CMPAL,30HEXEEXE格式程序清单格式程序清单 JCERROR;00转转SUBAL,30HMOVBL,AL;BL=0;BL=09 9 的二进制数的二进制数MOVAH,2MOVDL,=INT21HCALLDISPMOVAH,2MOVDL,BINT21HJMPEXITERROR:MOVAH,9MOVDX,OFFSETMESG2INT21H;显示错误信息显示错误信息EXIT:MOVAH,4CHINT21H;-DISPPROC;
14、显示显示BLBL中的二进制数中的二进制数MOVCX,8LAST:MOVDL,0RCLBL,1JNCNEXTMOVDL,1NEXT:MOVAH,2INT21HLOOPLASTRETDISPENDPCODEENDSENDBEGEXEEXE格式程序清单格式程序清单 .486CODESEGMENTUSE16ASSUMECS:CODEORG100HSTART:JMPBEGMESG1DBPleaseEnter!,0DH,0AH,$MESG2DB-Error!$BEG:MOVAH,9MOVDX,OFFSETMESG1INT21H;显示操作提示显示操作提示 MOVAH,1INT21H;等待键入等待键入CMPA
15、L,3AHJNCERROR;9 9 转转CMPAL,30HJCERROR;0 0 转转SUBAL,30HMOVBL,AL;BL=0;BL=09 9 的二进制数的二进制数MOVAH,2MOVDL,=INT21HCALLDISPMOVAH,2MOVDL,BINT21HJMPEXITMOVDX,OFFSETMESG2INT21H;显示错误信息显示错误信息INT21HERROR:MOVAH,9EXIT:MOVAH,4CHCOMCOM格式程序清单格式程序清单;-DISPPROC;显示显示BLBL中的二进制数中的二进制数MOVCX,8LAST:MOVDL,0RCLBL,1JNCNEXTMOVDL,1NEX
16、T:MOVAH,2INT21HLOOPLASTRETDISPENDPCODEENDSENDSTARTCOMCOM格式程序清单格式程序清单 问题:问题:键入的是两位十进制数时,键入的是两位十进制数时,如何将该十进制数的二进制数显如何将该十进制数的二进制数显示在屏幕上?示在屏幕上?代码转换代码转换二二.二进制数二进制数十六进制数显示十六进制数显示算法:算法:四位二进制数四位二进制数等值的十六进制数等值的十六进制数十六进制数十六进制数 ASC ASC码码算法算法000010011010111109AF30H39H41H46H四位二进制数四位二进制数+30H+30H=等值的十六进制等值的十六进制数数A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 微机 原理 接口 技术 PPT 课件
限制150内