微型计算机汇编程序示例,微机原理第4章 汇编语言程序设计(II)1.08.ppt

微机原理第4章 汇编语言程序设计(II)1.08.ppt

* */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_BINPROCNEAR 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_HEXPROC NEAR MOVCH, 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’时的输出结果。 STACKSEGMENT PARA STACK ‘STACK’ DW 100 DUP(?) TOPLABEL WORD STACKENDS CODESEGMENT ASSUME CS:CODE,SS:STACK START:MOVCX,6 本章作业 * */42 LOP1:MOV AH,01H INT 21H PUSH AX LOOP L

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值