第4节 汇编语言程序的设计(II).ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* */42 代码转换例程 1. 10进制数->2进制数 将键盘输入的10进制数(0-65535)转换成2进制数,并存入BX寄存器中,如键入一个非10进制数,则退出。 [分析] 先利用1号DOS功能调用,从键盘输入一数字,并在AL中得到它的ASCII码。 再将它转换成2进制数(减去30H),并判断是否为数字0-9,若不是则退出子程序,若是,则将2进制数->BX中。 再从键盘输入第二个数字,若该数为0-9,则将先输入的数乘以10后再加上后输入的数,结果存进BX。后面再输入的数做同样的处理。 * */42 代码转换例程 10进制数->2进制数 子程序: DEC_BIN PROC NEAR MOV BX, 0 GET_CHAR: MOV AH, 1 ;键入数字 INT 21H SUB AL, 30H JL EXIT ;<0,退出 CMP AL, 9 ;>9,退出 JA EXIT ;是数字0-9 CBW ;将AL中的字节->字 XCHG AX, BX MOV CX, 10 ;将先键入的数乘以10 MUL CX XCHG AX, BX ADD BX, AX ;再加上新键入的数 JMP GET_CHAR EXIT: RET DEC_BIN ENDP * */42 代码转换例程 2. 2进制数->16进制数 将BX寄存器中的2进制数转换成16进制数,并在CRT上显示出来。 [分析] 由于每4位2进制数可用一个16进制数表示,所以BX中的2进制数可转换成4个16进制数字,每左移4次可得到一个16进制数,将其转换成ASCII码后,在CRT上显示出来,重复4次,可将BX中的数以4个16进制数字显示出来。 * */42 代码转换例程 2进制数->16进制数子程序: BIN_HEX PROC NEAR MOV CH, 4 ;重复4次可得到4个16进制数 ROTATE: MOV CL, 4 ROL BX, CL ;BX左移4次 MOV AL, BL AND AL, 0FH ;截得一个16进制数字(4位二进制) ADD AL, 30H ;转换成ASCII码 CMP AL, 3AH JL DISPLAY ADD AL, 7H DISPLAY: MOV DL, AL ;显示 MOV AH, 2 INT 21H DEC CH ;4个数字都显示完了? JNZ ROTATE ;没有,则循环 RET BIN_HEX ENDP * */42 本章学习要求 能读懂汇编语言源程序 掌握汇编语言程序设计的基本方法 能根据给定问题,进行一般的汇编程序设计 * */42 本章作业 教材P198 2 5 6 11 14 19 * */42 补充4.3 读下列程序,试写出当输入为‘ABCDEF’时的输出结果。 STACK SEGMENT PARA STACK ‘STACK’ DW 100 DUP(?) TOP LABEL WORD STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START: MOV CX,6 本章作业 * */42 LOP1: MOV AH,01H INT 21H PUSH AX LOOP L

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档