微机原理第八章微型计算机的程序设计.ppt
《微机原理第八章微型计算机的程序设计.ppt》由会员分享,可在线阅读,更多相关《微机原理第八章微型计算机的程序设计.ppt(91页珍藏版)》请在咨信网上搜索。
1、2024/11/9 周六1第八章第八章 微型计算机的程序设计微型计算机的程序设计w顺序结构程序顺序结构程序w分支结构程序分支结构程序w循环结构程序循环结构程序w子程序结构子程序结构2024/11/9 周六2重点重点:w程序设计方法程序设计方法w顺序结构程序顺序结构程序w分支结构程序分支结构程序w循环结构程序循环结构程序w子程序结构子程序结构2024/11/9 周六38.1 8.1 程序设计步骤程序设计步骤w1.1.分析问题分析问题w2.2.建立数学模型建立数学模型w3.3.确定算法确定算法w4.4.绘制程序流程图绘制程序流程图w5.5.内存分配内存分配w6.6.编制程序编制程序w7.7.程序调
2、试程序调试2024/11/9 周六4wdata segmentw a1 db hellon!,0dh,0ah,$wdata endswStack1 segment para stackw.wStack1 endswcode segmentw assume cs:code,ds:data,ss:stack1w start:mov ax,dataw mov ds,axw mov ah,4chw int 21hwcode endsw end start看一个例子看一个例子2024/11/9 周六58-1 8-1 顺序程序设计顺序程序设计补充:二进制编码的十进制数二进制编码的十进制数 就是BCD码(B
3、inary Coded Decimal)。压缩BCD码 是用4位二进制数表示一位十进制数。一个字节表示两位十进制数。如:1001 0110B 表示 96 D非压缩BCD码 是用一个字节表示一位十进制数。高4位总是0。如:0000 1001B 表示 9D 两种BCD码的编码对照表2024/11/9 周六6两种两种BCDBCD码的编码对照表码的编码对照表2024/11/9 周六71.BCD数加法调整指令DAA和AAA(P196)wDAA-两个压缩BCD数相加调整指令:w(AL&0FH)9或者AF=1,则AL加6;w(AL&0F0H)90H或CF=1,则AL加60H;w如:MOV AX,3456HA
4、DD AL,AH;AL=8AHDAA ;AL=90H2024/11/9 周六8wAAA-两个非压缩BCD数相加调整指令w若(AL&0FH)9或AF=1,则(AL+6)&0FH送AL,AH加1且CF置1;w否则:(AL&0F0H)送AL,AH不变且CF保持0不变;w如:MOV AX,0806HADD AL,AH ;AL=0EH,AH=08H(没变)MOV AH,0AAA ;属于第1种情况,故AL为(AL+6)&0F=14H&0FH=04H;AH=01H2024/11/9 周六9w【例【例8.1】的的程序段为:程序段为:stack segment stack stackdw 32 dup(0)st
5、ackstack endsdata segmentW1 DW 8931HW2 DW 5678HSUM DB3 DUP(0)data endscodesegmentbegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush ax2024/11/9 周六10mov ax,datamov ds,axMOV AL,BYTE PTR W1 ;AL=31H (+78H)ADD AL,BYTE PTR W2;AL=A9H,CF=0,AF=0DAA;BCD数加法调整指令数加法调整指令;AL=09H,CF=1MOV SUM,ALMOV AL
6、,BYTE PTR W1+1;AL=89H(+56H)ADC AL,BYTE PTR W2+1;AL=E0H,CF=0,AF=1DAA;AL=46H,CF=1MOV SUM+1,ALMOV SUM+2,0 ;处理向万位的进位处理向万位的进位RCL SUM+2,1 ;也可用指令;也可用指令ADC SUM+2,0retbegin endpcode endsend begin2024/11/9 周六11例8.2 非压缩BCD数W1与W2(均为字变量)相加,将其和送到SUM字节变量中。data segmentW1 DW 0809H ;即即89DW2 DW 0607H ;即即67DSUM DB3 DUP
7、(0);一个字节放一个字节放1位位BCD码,用来放加完后的值码,用来放加完后的值156data ends2024/11/9 周六12MOV AX,W1 ;AX=0809H,W2为为0607HADD AL,BYTE PTR W2;AL=1010H,CF=0,AF=1AAA;属于第一种情况,故属于第一种情况,故;AL为(为(AL+06H)&0FH=10H+06H)&0FH;=16H&0FH=06H=AL;AH加加1且且CF置置CF=1,所以,所以AH=08H+1=09H,则,则AX=0906HMOV SUM,AL ;(SUM)=06HMOV AL,AH;AL=09HADD AL,BYTE PTR
8、W2+1;AL=09H+06H=0FH,属于第,属于第1种情况种情况MOV AH,0AAA;AL=05H,AH=01H;第一种情况处理:;第一种情况处理:AL=(AL+06H)&0FH,因因0FH+06H=15H,故,故AL=05H,AH=AH+1=0+1=01H,所以,所以AX=0105HMOV WORD PTR SUM+1,AX;(;(SUM+1)=05,(,(SUM+2)=01此句也可表达为此句也可表达为MOV SUM,ALMOV SUM,AL;见;见P151P1512024/11/9 周六132.BCD数减法调整指令DAS和DAA(自看,P198)wDAS-两个压缩BCD数相减调整指令
9、:w(AL&0FH)9,则AL减6;w(AL&0F0H)90H,则AL减60H;w如:MOV AX,5634HSUB AL,AH;AL=DEH,有借位DAS ;AL=78H,保持借位即134-56AAS-两个非压缩BCD数相减调整指令2024/11/9 周六143.非压缩BCD数乘除法调整指令AAM和AAD(P199,自看)2024/11/9 周六15顺序程序设计举例:例7.7 镜子程序,P183-184data segmentOBUF DB 0DH,0AH,$IBUF DB 0FFH,0,255 DUP(0)data ends2024/11/9 周六16MOV DX,OFFSET OBUF;
10、MOV DX,OFFSET OBUF;显示提示符显示提示符“”并回车换行并回车换行MOV AH,O9MOV AH,O9INT 21HINT 21HMOV DX,OFFSET IBUF;MOV DX,OFFSET IBUF;输入并显示字符串输入并显示字符串MOV AH,10MOV AH,10INT 21HINT 21HMOV BL,IBUF+1MOV BL,IBUF+1MOV BH,0MOV BH,0MOV IBUFBX+2,$MOV IBUFBX+2,$MOV DL,0AH ;MOV DL,0AH ;换行换行MOV AH,2MOV AH,2INT 21HINT 21HMOV DX,OFFSET
11、 IBUF+2 ;MOV DX,OFFSET IBUF+2 ;再显示输入的字符串再显示输入的字符串MOV AH,9MOV AH,9INT 21HINT 21H2024/11/9 周六178.2 分支程序设计w特点:利用改变标志位的指令和转移指令来实现。1.无条件转移指令:JMP(见P207)2.条件转移指令:Jcond short-label(偏移地址送到IP)3.特点:满足条件,则实现段内转移;80386开始才可以转移到代码段的任何位置。2024/11/9 周六182024/11/9 周六192024/11/9 周六202024/11/9 周六212024/11/9 周六222024/11/
12、9 周六232024/11/9 周六242024/11/9 周六252024/11/9 周六268.3 循环程序设计2024/11/9 周六272024/11/9 周六288.3.2 重复控制指令1.LOOP short-label2.LOOPZ short-label 或或 LOOPE short-label3.LOOPNZ short-label 或或LOOPNE short-label4.JCXZ short-label5.JECXZ short-label6.共同点:均受共同点:均受CX或或EXC的值控制,详见的值控制,详见P214-2152024/11/9 周六298.3.3 单重循
13、环设计举例w例8.11 计算Z=X+Y,其中X和Y是双字变量w分析:双字变量是4个字节,则和可能占5个字节2024/11/9 周六302024/11/9 周六312024/11/9 周六322024/11/9 周六332024/11/9 周六342024/11/9 周六352024/11/9 周六362024/11/9 周六372024/11/9 周六38作业8.4 编写求两个4位非压缩BCD数之和,将和送显示器显示的程序。(P261)w分析:分析:两加数各要4个字节单元,可以为DD类型;考虑到进位,和要5个字节单元,另外,输出到显示器的结束符号$需要一个单元存放,故共需6个字节。因此,数据段
14、定义为:data segment W1 DD 01020304HW2 DD 05060708HSUM DB 5 DUP(0)DB$data ends2024/11/9 周六39代码段中的核心语句MOV CX,4MOV SI,0MOV DI,4;要在要在SUM+4中放个位,中放个位,SUM+0中放最高位的进位。中放最高位的进位。XOR AX,AX;清清CFA1:MOV AL,BYTE PTR W1SI;ADC AL,BYTE PTR W2SIAAAMOV SUMDI,ALINC SIDEC DILOOP A1MOV SUMDI,0RCL SUMDI;以上是得到加的结果,放在以上是得到加的结果,放
15、在SUM中。下面是输出到显示器的程序语句中。下面是输出到显示器的程序语句MOV DX,OFFSET SUMMOV AH,09INT 21H 2024/11/9 周六40作业8.5 编写求两个4位压缩BCD数之和,将和送显示器显示的程序。(P261)w分析:分析:两个加数各要2个字节单元,可以为DW类型;考虑到进位,和要3个字节单元,另外,输出到显示器的结束符号$需要一个单元存放,故共需4个字节。因此,数据段定义为:data segment W1 DW 1234HW2 DW 5678HSUM DB 3 DUP(0)DB$data ends2024/11/9 周六41代码段中的核心语句MOV CX
16、,2MOV SI,0MOV DI,2;要在要在SUM+2中放个位,中放个位,SUM+0中放最高位的进位。中放最高位的进位。XOR AX,AX;清清CFA1:MOV AL,BYTE PTR W1SI;ADC AL,BYTE PTR W2SIDAAMOV SUMDI,ALINC SIDEC DILOOP A1MOV SUMDI,0RCL SUMDI;以上是得到加的结果,放在以上是得到加的结果,放在SUM中。下面是输出到显示器的程序语句中。下面是输出到显示器的程序语句MOV DX,OFFSET SUMMOV AH,09INT 21H 2024/11/9 周六42作业8.17 编写求输入算式加数1+加
17、数2的和并送显。(加数及其和均为4位(即指压缩)BCD数,P262)w分析:要求先有屏幕显示输出加数1+加数2:,然后从键盘输入两个4个字节的BCD数,加完后送显。w用到的变量:W1和W2因为从键盘输入,均不确定是几位十进制,故需确定其最大位数不超过要用wW1 2024/11/9 周六43例6.2w将将内内存存(10050)单单元元的的内内容容拆拆成成两两段段,每每段段4位位,并并将将它它们们 分分 别别 存存 入入 内内 存存(10051)和和(10052)单单 元元。即即(10050)单单元元中中的的低低4位位放放入入(10051)单单元元中中的的低低4位位,而(而(10050)单元中的高
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 第八 微型计算机 程序设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。