- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理与应用第5章3节2012SGQ
复习 1、汇编语言程序的设计步骤 。 2、汇编语言程序设计分类。 3、顺序结构程序设计。 例2、从内存ADR单元开始,连续存放出1000个学生的某门课成绩. 统计90~100, 70~89, 60~69, 60以下各段人数. 解: 设 CX: 计数器, SI: 地址指针. 定义: S5, S6 ,S7 ,S9 单元 存放各分数段的人数. AL: 待查分数. (三)、循环程序设计 循环程序: 1、求某个字数中1的位数。(字节的,0的位数) 2、求连续N个自然数的和小于100的最大N值。(连续N个奇数、偶数,大于某个数的最小N值) 3、求N个数中的最大最小值。 4、统计一些数中0的个数,正数的个数,负数的个数。 5、求两个多字节BCD数的和。 6、求N个字节数的和,和用一个字表达。 * * 初始化CX、SI、S5、S6、S7、S9 AL 60? AL 70? AL =90 修改地址 CX=0? Y S9+1 S7+1 S5+1 Y Y Y N N N N 结束 60分以下 60~69 90~100 70~89 S6+1 DATA SEGMENT ADR DB 68, 59 , 85, 96, …… 76 COUNT DW 1000 S5 DW 0 S6 DW 0 S7 DW 0 S9 DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START:MOV AX, DATA MOV DS, AX MOV SI, OFFSET ADR MOV CX, COUNT AGAIN:MOV AL, [SI] CMP AL, 60 JL NEXT1 CMP AL, 70 JL NEXT2 CMP AL, 90 JGE NEXT3 INC WORD PTR S6 JMP STOP NEXT1:INC WORD PTR S9 JMP STOP NEXT2:INC WORD PTR S7 JMP STOP NEXT3:INC WORD PTRS5 STOP :INC SI DEC CX JNZ AGAIN MOV AH,4CH INT 21H CODE ENDS END START 可以这样设置: ADR DB 250 DUP (68, 59 , 85, 96) 思考:如果多加一个分数段“80~90”呢? DATA SEGMENT ORG 1000H DAT1 DB -1,2,3,-9… COUNT DW N MN DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA CODE ENDS END START START:MOV AX ,DATA MOV DS, AX MOV AH,4CH INT 21H MOV SI,OFFSET DAT1 MOV CX,COUNT MOV BL,[SI] INC SI DEC CX CMP BL,[SI] JL NEXT XCHG BL,[SI] NEXT:INC SI DEC CX JNZ AGAIN MOV MN,BL AGAIN: 思考:求N个带符号字节中的最小数 例3 计算 X+20 (0<X≤8) Y= 5X-2 (8<X15) X (其它) 设X为单字节带符号整数,且存在ARGX单元, 计算结果Y存入RLT单元 分析:求X绝对值,若X为正数,则是其本身,若X为负数,则将其取补,也就是连同其符号位在内一起取补,原来的负数变成了正数,即X的绝对值,5X可用X*2*2+X的算法求得 DATA SEGMENT ARGX DB 7 RLT DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX XOR AX,AX MOV AL,ARGX CMP AL,0 JG NEXT1 NEG AL JMP STOP NEXT1:CMP AL,15 JL NEXT2 JMP STOP NEXT3:SAL AL,1 JNC GO1 INC AH GO1: SAL AL,1 JNC GO2 INC AH GO2: ADD AL,ARGX ADC AH,0 SUB AX,2 STOP
文档评论(0)