(汇编)输入一个十进制数字串(无符号),以四位十六进制的形式输出
来源:互联网 发布:中企动力源码下载 编辑:程序博客网 时间:2024/06/06 09:27
上汇编课,老师给我们出了一题:
输入一个十进制数字串(假定是无符号的),以四位十六进制的形式输出该串对应的值
想了一下,感觉好难,该怎么处理把字符串转换为十进制数,还有怎么把十进制数转换为十六进制,想了半天没有头
在网上搜了一下,看到了一个解法,(点击打开链接), 不过感觉有些代码略繁琐而且对一位的字符输入会有错误输出,算是一个bug,
于是忍不住进行了修改,修改了bug而且代码少了不少也清晰了很多:
.386STACKSEGMENTUSE16STACKDB 200 DUP(0)STACK ENDSDATA SEGMENT USE16BUF1 DB 20 DB ? DB 20 DUP(0); buf1用来存储用户输入的字符串BUF2 DB 20 DB ? DB 20 DUP(30H); buf2用来存储输出的结构 每个字节默认为字符'0'INPUT DB 'Input:$'OUTPUT DB 'Output:$'CTRL DB 0DH,0AH,'$'; 提示语,换号符X1 DW 0AHX2 DW 10H ; 进制转换用的乘法或者除法因子DATAENDSCODESEGMENTUSE16ASSUME DS: DATA, CS: CODE, SS: STACKSTART:MOVAX,DATAMOV DS,AXLEA DX,INPUTMOV AH,9INT 21H; 输出'input:'提示语LEADX,BUF1MOVAH, 10INT 21H; 把输入的存在buf1中LEADX, CTRLMOV AH, 9INT21H; 输出回车换行MOV CL, BUF1+1; cl存储输入字符个数LEA SI, BUF1+2; 输入字符首地址MOV AX, 0LOOPA:MUL [X1]MOVBL, [SI]SUB BL, 30H; ascii 码转换为数字MOVBH, 0ADD AX, BXINC SIDEC CLJNZ LOOPA; loopa 循环把输入的字符串转换为数字存到dx, ax中 dx为高字节,ax为低字节MOV CL, 0LOOPB:DIV [X2]PUSH DX;入栈INC CLMOV DX, 0CMP AX, 0JNE LOOPB; loopb 循环把十进制转换为16进制数,每一16进制位压入栈MOV AL, 4SUB AL, CLMOV AH, 0LEA SI, BUF2+2ADD SI, AXLOOPC: POP AXCMP AX, 9JBE NUMADD AX, 7HNUM:ADD AX, 30HMOV [SI], AXINC SIDEC CLJNE LOOPC; loopc 循环把栈中的16进制数字转换为ascii码存到buf2中MOV [SI], BYTE PTR 'H'INC SIMOV [SI], BYTE PTR '$'; buf2 的结尾加上'h$'LEA DX,OUTPUTMOV AH,9INT 21H; 输出'output'提示LEADX, BUF2MOV AH, 9INT21H; 输出最终结果MOV AH, 4CHINT 21HCODEENDSEND START
0 0
- (汇编)输入一个十进制数字串(无符号),以四位十六进制的形式输出
- 输入一个无符号十进制数字串,以四位十六进制的形式输出该串对应的值。
- 输入一个带符号的十进制数字串,以四位十六进制的形式输出该串对应的值
- 从键盘输入不多于四位的十进制数,以十六位二进制数形式输出
- 将一个无符号十进制数的二进制逆转,然后以输出
- 输入一个十六进制的数,然后按位输出2进制形式
- 不能使用printf,将十进制数以二进制数和十六进制的形式输出...
- 汇编:把寄存器AX的十六进制数转换成十进制形式输出
- 不是用它printf,将十进制数以二进制和十六进制的形式输出
- 不是用它printf,将十进制数以二进制和十六进制的形式输出
- 不使用printf,讲十进制数以十六进制的形式输出
- (汇编)输入两个四位十进制数字并求和后以十进制输出
- 编写一程序要求任意输入四位十六进制的整数,以反序的方式输出该十六进制数。 例如 :输入9AF0, 则输出 0FA9
- 输入十进制数,输出十六进制
- 依次以十进制、八进制和十六进制形式输入三个整数,输出每个整数的十进制、八进制和十六进制形式。 输入输出示例
- 写一个函数,输入一个十六进制数,输出相应的十进制数
- 写一个函数,输入一个十六进制数,输出相应的十进制数。
- 写一个函数 输入一个十六进制数,输出相应的十进制数。
- Activity生命周期
- struts1和struts2的区别
- Android多语言支持
- Cocos2dx 3.0 过渡篇(十一) xml文档的读取与调用
- IT不难
- (汇编)输入一个十进制数字串(无符号),以四位十六进制的形式输出
- 时光里,我一个人的碎碎念。
- 爱在冰点起舞
- 筛选法求素数
- TFS的原理和应用
- 爱在冰点起舞
- 海洋中最令人惊悚的生物
- factoryimage制作指导
- Go语言:使用sort包对任意类型元素的集合进行排序