java16进制转10进制_java肿么把16进制的数转换为10进制的

汇编是复杂的,可以下载MASM或者Radasm编译如下代码,在linux平台 可以直接用gcc自带的as汇编器进行编译。

DATA SEGMENT DATA1 DB ? DATA2 DB 2 DUP(?) DATA20 DB 2 DUP(?) DATA3 DB 'Input Error, Please Enter Again!','$' DATA ENDS STACK SEGMENT DB 5 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV BX,0 INPUT:MOV AH,01H INT 21HCMP AL,51H;判断输入的字符是否为Q JE EXIT ;如果是Q就退出 CMP AL,71H;判断输入的字符是否为q JE EXIT;如果是Q就退出PUSH AX;把从键盘输入的字符的ASCII存到堆栈段 SUB AL,30H ;判断是否为数字 CMP AL,00HJL INDI ;如果不是就提示错误 CMP AL,09H ; MOV BL,AL ; JLE OUTPUT2;如果是数字就输出 POP AX ;把AL的值取出来PUSH AX ; MOV BL,AL SUB AL,41H;判断是否为大写字母A到F CMP AL,00H JL INDI;如果不是就提示错误CMP AL,06H JL CHANGE POP AXPUSH AX MOV BL,AL SUB AL,61H;判断是否为小写字母a到f CMP AL,00H JL INDI ;如果不是就提示错误 CMP AL,06H JL CHANGE POP AXJMP INDICHANGE:MOV SI,0MOV DI,0MOV CL,4MOV AL,BLAND AL,11011111B;统一换为大写字母再转换,如果是大写字母就不变SUB AL,31HMOV BL,ALAND AL,0FH ;与运算,取低位MOV [DATA2+SI],AL ;把个位数存到DATA2中MOV AL,BLSAR AL,CL ;算术右移,取高位MOV[DATA20+DI],AL;把十位数存到DATA20中OUTPUT1: MOV DL,48H;输出十六进制符号HMOV AH,02HINT 21HMOV DL,3DH ;输出等号‘=’MOV AH,02HINT 21HMOV DL,[DATA20+DI];输出十位数ADD DL,30HMOV AH,02HINT 21HMOV DL,[DATA2+SI];输出个位数ADD DL,30HMOV AH,02HINT 21HMOV DL,20HMOV AH,02HINT 21HJMP INPUT;跳到输入数字 OUTPUT2: MOV DL,48H ;输出数字MOV AH,02HINT 21HMOV DL,3DHMOV AH,02HINT 21HMOV DL,BLADD DL,30HMOV AH,02HINT 21HMOV DL,20HMOV AH,02HINT 21HJMP INPUTINDI:MOV DL,20H ;提示子程序MOV AH,02HINT 21HMOV DX,OFFSET DATA3 ;显示提示信息MOV AH,09HINT 21HJMP INPUT EXIT:MOV AH,4CHINT 21HCODE ENDSEND START

取消

评论

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值