- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理第八章微型计算机的程序设计要点
第八章 微型计算机的程序设计 顺序结构程序 分支结构程序 循环结构程序 子程序结构 重点: 程序设计方法 顺序结构程序 分支结构程序 循环结构程序 子程序结构 8.1 程序设计步骤 1.分析问题 2.建立数学模型 3.确定算法 4.绘制程序流程图 5.内存分配 6.编制程序 7.程序调试 8-1 顺序程序设计 AAA-----两个非压缩BCD数相加调整指令 若(AL0FH)9或AF=1,则(AL+6)0FH送AL,AH加1且CF置1; 否则:(AL0F0H)送AL,AH不变且CF保持0不变; 如:MOV AX,0806H ADD AL,AH ; AL=0EH, AH=08H(没变) MOV AH,0 AAA ;属于第1种情况,故AL为(AL+6)0F=14H0FH=04H; AH=01H 【例8.1】的程序段为: stack segment stack ‘stack dw 32 dup(0) stack stack ends data segment W1 DW 8931H W2 DW 5678H SUM DB 3 DUP(0) data ends code segment begin proc far assume ss: stack, cs: code, ds:data push ds sub ax, ax push ax 例8.2 非压缩BCD数W1与W2(均为字变量)相加,将其和送到SUM字节变量中。 data segment W1 DW 0809H ;即89D W2 DW 0607H ;即67D SUM DB 3 DUP(0) ;一个字节放1位BCD码,用来放加完后的值156 data ends MOV AX, W1 ;AX=0809H,W2为0607H ADD AL, BYTE PTR W2 ;AL=10H, CF=0,AF=1 AAA ; 属于第一种情况,故 ; AL为(AL+06H)0FH=10H+06H )0FH ; =16H0FH=06H=AL; ;AH加1且CF置CF=1,所以AH=08H+1=09H,则AX=0906H MOV SUM, AL ;(SUM)=06H MOV AL,AH; AL=09H ADD AL, BYTE PTR W2+1 ; AL=09H+06H=0FH,属于第1种情况 MOV AH, 0 AAA ; AL=05H, AH=01H ;第一种情况处理:AL=(AL+06H)0FH, 因0FH+06H=15H,故AL=05H,AH=AH+1=0+1=01H,所以AX=0105H MOV WORD PTR SUM+1, AX ;(SUM+1)=05,(SUM+2)=01 2. BCD数减法调整指令DAS和DAA(自看,P198) DAS-----两个压缩BCD数相减调整指令: (AL0FH)9,则AL减6; (AL0F0H)90H,则AL减60H; 如:MOV AX,5634H SUB AL,AH; AL=DEH, 有借位 DAS ;AL=78H,保持借位即134-56 AAS-----两个非压缩BCD数相减调整指令 3. 非压缩BCD数乘除法调整指令AAM和AAD(P199,自看) 顺序程序设计举例:例7.7 镜子程序,P183-184 data segment OBUF DB ‘’ 0DH, 0AH, ‘$’ IBUF DB 0FFH, 0, 255 DUP(0) data ends MOV DX , OFFSET OBUF ;显示提示符“”并回车换行 MOV AH , O9 INT 21H MOV DX , OFFSET IBUF ;输入并显示字符串 MOV AH , 10 INT 21H MOV BL, IBUF+1 MOV BH, 0 MOV IBUF[BX+2], ‘$’ MOV DL, 0AH ; 换行 MOV AH, 2 INT 21H MOV DX , OFFSET IBUF+2 ; 再显示输入的字符串 MOV AH, 9 INT 21H 8.2 分支程序设计 特点:利用改变标志位的指令和转移指令来实现。 无条件转移指令:JMP (见P207) 条件转移指
文档评论(0)