第四章汇编程序设计补充举例(郁慧娣书).docVIP

第四章汇编程序设计补充举例(郁慧娣书).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 汇编程序设计补充举例 (郁慧娣 书P72~79 3.4 汇编语言程序设计举例) 代码转换 键盘输入——ASCII码 数字存储、运算——二进制、十六进制、BCD码 屏幕显示——ASCII码 ASCII码 —— 二进制数 1)ASCII码 —— 二进制数 ·一位ASCII码 ‘0’‘1’‘2’…‘9’ 30h 31h 32h … 39h 00h 01h 02h … 09h 二进制数—— ‘ASCII码’与‘0Fh’ ·多位ASCII码 Ⅰ. 每位ASCII码 与 ‘0Fh’ —— 一位十进制数(0~9) Ⅱ. 各位十进制数组合 —— 二进制数(和) SUM——累加和,初值=0 Di——一位十进制数(0~9) 二进制数(和)=((SUM×10+Dn)×10+ Dn-1)×10…+ D0 例 ‘7155’ 二进制数(和)=(((0×10+7)×10+ 1)×10+5)×10+5=7155 编程举例 DATA SEGMENT ASCBUF DB ‘7155’ COUNT EQU $-ASCBUF ; ASCBUF定义的字节个数 SAVEDX DW 0(或?) DATA ENDS STACK SEGMENT PARA STACK ‘STACK’ STAPN DB 100 DUP(?) STACK ENDS COSEG SEGMENT ASSUME CS: COSEG, DS: DATA, ES: DATA, SS: STACK START PROC FAR PUSH DS MOV AX, 0 ;(可用SUB AX, AX XOR AX, AX代替) PUSH AX MOV AX, DATA MOV DS, AX MOV ES, AX MOV SI, OFFSET ASCBUF MOV CX, COUNT CMP CX, 4 JA INVALID ;ASCII码位数超过4个,无效 CLD SUB DX, DX ; DX放累加和SUM NEXTCHAR: CALL MUL10 ; 调用×10的过程 LODSB ;AL — [SI], SI— SI+1 CMP AL, ‘0’ JB INVALID CMP AL, ‘9’ JA INVALID AND AX, 0FH ;0~9的ASCII码, ;转换为二进制 ADD DX, AX JC INVALID ; 转换结果65536,无效 LOOP NEXTCHAR MOV AX, DX ;AX存放转换好的二进制数 JMP EXIT INVALID: STC ;CF=1, 转换结果无效的标志 EXIT: RET ; 与前面三句一起完成程序结束 ; 返回DOS的功能 START ENDP MUL10 PROC NEAR MOV SAVEDX, DX SHL DX, 1 ;×2 SHL DX, 1 ;在×2 ADD DX, SAVEDX ;原始值×5 SHL DX, 1 ; 原始值×10 RET MUL10 ENDP COSEG ENDS END START *思考 运算结果(二进制数)—— ASCII码字符串,送屏幕显示 提示 二进制数÷10取余数——十进制数 十进制数+30h——ASCII码字符 循环重复1、2步,得到ASCII码字符串 ASCII码——BCD码(压缩) 1)ASCII码——BCD码(压缩) ·偶数个ASCII码 每2B ASCII码—— 1B BCD码 低字节 与 0Fh + 高字节 左移4位 BCD码(1B) ·奇数个ASCII码 先将最低字节 与 0Fh —— 1B BCD码; 剩余偶数个ASCII码再按上述方法,每2B ASCII码—1B BCD码。 编程举例 DATA SEGMENT ASCBUF DB 31h, 32h, 34h, 35h, 36h, 37h, 38h, 39h, 30h COUNT EQU $- ASCBUF ; ASCBUF定义的字节个数 BCDBUF DB 5DUP(?) DATA ENDS STACK SEGMENT PARA

文档评论(0)

5f2e576 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档