汇编——键盘输入转十进制数子程序

键盘输入转十进制数子程序。

Tip db 'Error,please retype!$'

deci proc near;键盘输入转十进制数子程序
    mov bx,0
input:    
    mov ah,1
    int 21h
    cmp al,0dh
    je exit3;若是换行键表明输入完成
    sub al,30h
    jl cc;若不是数则报错并退出子程序
     cmp al,9
    jg cc;若不是数则报错并退出子程序
    cbw
    xchg ax,bx
    mov cx,10
    mul cx
    xchg ax,bx
    add bx,ax
    jmp input3
cc:call crlf;换行
  mov ah,9
  lea dx,Tip;打印提示,提示输入存在错误
   int 21h
    call crlf;换行
   mov bx,0
   jmp input
exit3:ret
deci endp;

crlf proc near;换行子程序
  mov dl,0ah
  mov ah,02
  int 21h
ret 
crlf endp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个简单的汇编程序,可以将一个16位的十六进制转换十进制: ```assembly ORG 0x100 MOV AX, 0xABCD ; 要转换的十六进制 MOV BX, 10 ; 十进制的基 MOV CX, 0 ; 用于保存结果的寄存器 LOOP: XOR DX, DX ; 清空 DX 寄存器 DIV BX ; 将 AX 寄存器中的值除以 10,商保存在 AX 中,余保存在 DX 中 PUSH DX ; 将余压入栈中 CMP AX, 0 ; 如果商为 0,说明已经完成转换 JNE LOOP ; 否则继续循环 PRINT: POP DX ; 将栈顶元素弹出到 DX 中 ADD DL, '0' ; 将余转换为 ASCII 码 MOV AH, 2 ; AH 寄存器中的值为 2,表示要输出字符 INT 21H ; 调用 DOS 的中断 21H,输出字符 CMP SP, 0 ; 如果栈中还有元素,说明还没有输出完毕 JNE PRINT ; 否则退出程序 HLT ; 停机指令 ``` 这个程序的实现思路是将十六进制除以 10,将余保存在栈中,最后依次弹出栈中的元素并输出,即可得到对应的十进制。 ### 回答2: 汇编程序设计是一种通过编写汇编语言来实现程序代码的技术。在这个问题中,我们需要将一个十六进制转换十进制。 要完成这个任务,我们可以按照以下步骤进行操作: 1. 了解十六进制十进制的基本概念:十六进制是一种由0-9和A-F表示的字系统,而十进制是我们通常使用的十个字(0-9)表示的字系统。 2. 获取输入的十六进制:我们可以通过读取用户输入或从内存中获取十六进制。 3. 将十六进制从字符串或存储单元中读取到寄存器中。 4. 对读取到的十六进制进行处理:我们需要逐个字符处理十六进制,将每个字符转换十进制。 5. 将每个十六进制字符转换为对应的十进制值:这可以通过编写转换算法来实现。例如,字符'A'将转换十进制的10。 6. 将得到的十进制字符逐次相加:依次将每个十进制字符相加,以得到最终的十进制结果。 7. 输出结果:将结果以十进制形式输出,可以将其存储到内存中或显示在屏幕上。 以上步骤是完成将十六进制转换十进制的基本过程。在编写汇编程序时,我们需要使用适当的指令和算法来实现这些步骤。最终,我们将获得所需的十进制结果,以便进一步使用或显示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值