如何用汇编语言将十六进制数转化为十进制转十六进制数输出?

您的举报已经提交成功,我们将尽快处理,谢谢!
1.用计算器:开始-程序-附件-计算器,查看-科学型,输入十进制数,再选你要的进制就行了.
2.在纸上手工:把十进制数分成整数部分和小数部分,整数部分用除2取...
413没错,最简单方法,既然你能有电脑用,就用系统自带附件里的计算器转化,2进制,8进制,10进制,16进制都能相互转化。
大家还关注
<a href="/b/5701943.html" target="_blank" title="C啊 在C语言中,5种基本数据类型的存储空间长度的排列顺序为:_____
A、char<int<long int <=float<double
B、char=int<long int <=float<double
C、char<int<long int=float=double
D、char=int=<long int <=floatC啊 在C语言中,5种基本数据类型的存储...
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'汇编语言程序:16进制转换成10进制(三种方法)
&注:曾经做过的汇编上机课作业题。虽然书上也有,但终归是自己调试更加印象深刻
;天水浪客(Gouki Jiang) ,
16进制to10进制例题&
SEGMENT PARA STACK
100H DUP(?)
STACK&& ENDS
SEGMENT PARA
0EB9AH&;060314
5 DUP(?),'$'
SEGMENT PARA
ASSUME& CS:CODE,DS:DATA,SS:STACK
DI,OFFSET RESULT+4
BYTE PTR [DI],DL
DX,OFFSET RESULT
;---------------------------------------------
;天水浪客(Gouki Jiang) ,
16进制to10进制倒除&
SEGMENT PARA STACK
100H DUP(?)
STACK&& ENDS
SEGMENT PARA
0EB9AH&;060314
SEGMENT PARA
ASSUME& CS:CODE,DS:DATA,SS:STACK
PUSH&&& DX
;-----------------------------------------------
;天水浪客(Gouki Jiang) ,
16进制to10进制 顺除&
SEGMENT&PARA STACK
DW&100H DUP(?)
STACK&& ENDS
SEGMENT PARA
DW&0EB9AH&;060314
DIVISOR&DW&,100,10,1
SEGMENT PARA
ASSUME CS:CODE,DS:DATA,SS:STACK
MOV&AX,DATA
&&&&&&&&MOV&DS,AX
MOV&AX,VALUE
&& MOV&SI,OFFSET
DIV&WORD&PTR[SI]
&& PUSH&DX
&& INT&21H
MOV&AX,4C00H
CODE && ENDS
;-------------------------------------
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。如何把十进制转化为十六进制 汇编语言_百度知道
如何把十进制转化为十六进制 汇编语言
code segment
cs:codemain
far;repeat:
repeatmain
bx, 0newchar:
newcharexit:
endp;change
al, 07hprint:
其他类似问题
为您推荐:
segmentstr
0ah,0dhnum
4 dup(?),&#39;H$&#39;tab
&#39;ABCDEF&#39;data
cs:code,ds:databegin:
ds,初始化代码段
cx,10进制next:
如果是回车,表示输入结束,转换开始保存输入值,当然还有AH,因为堆栈的存取必须以字为单位
bx,将先前的结果向上推一位取回本次输入
al,0屏蔽掉无用位,类SUB AL,30H
ah,高位归零
bx,合并本次输入
ax,开始转换
bx,没有见这个直接定址表起什么用啊!!!
si,numlopa:
ax,把高4位移到低4位
ax,000取出低4位
[si],按地址由低到高的顺序将结果由高到底存放
21回车换行
begin ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;算法描述:;总体来说是以二进制为中介,;先将输入视为十进制,转换为二进制数保存在BX中;然后再将这个二进制数转换为十六进制数保存在num开始的单元中;十进制转换为二进制的过程:;初始化:假设第一次输入前的输入为0;对于每次输入,将前面输入的各位均提升一位,即百位变千位,十位变百位,个位变十位,然后当前的输入填到个位,重复该步操作直到遇到回车符;二进制转换为十六进制:;因为每4个二进制位可以由1个十六进制位表示,所以依次取出4个二进制位就可以;①每次循环移动4位,将高4位移动到低4位后,取出低4位;②将取出的数依次写入num开始的单元中;③重复①-②4次;输出时:(这段代码没有,所以我说,没有见直接定址表起什么用);从num开始以字节为单位取数;以得到的数字为偏移量,查表tab,得到对应的十六进制字符,输出,重复4次;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
十六进制的相关知识
其他1条回答
CODE SEGMENT ASSUME CS:CODEBEGIN:
XOR BX,BX L1: MOV AH,1 INT 21H CMP AL,0DH JE
L2 CMP AL,30H JB L1 CMP AL,39H JA L1 AND AX,0FH XCHG AX,BX MOV CX,10 MUL CX JC L5 ADD BX,AX JC L5 JMP L1 L2: MOV AH,2 MOV DL,0DH INT 21H MOV AH,2 MOV DL,0AH INT 21H MOV CX,4 L3: PUSH CX MOV CL,4 ROL BX,CL MOV DL,BL AND DL,0FH ADD DL,30H CMP DL,39H JBE L4 ADD DL珐粻粹救诔嚼达楔惮盲,7 L4: MOV AH,2 INT 21H POP CX LOOP L3 JMP L6 L5:MOV AH,9 LEA DX,ERROR INT 21H L6:MOV AH,4CH INT 21H ERROR DB 0DH,0AH,&0VERFLOW&,07,0DH,0AH,24H CODE ENDS END BEGINPS:楼主慢慢研究 :)
下载知道APP
随时随地咨询
出门在外也不愁汇编 如何将十六进制数转换成十进制数输出显示出来。
[问题点数:37分,结帖人damimi111]
汇编 如何将十六进制数转换成十进制数输出显示出来。
[问题点数:37分,结帖人damimi111]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年3月 其他开发语言大版内专家分月排行榜第二2014年10月 其他开发语言大版内专家分月排行榜第二2013年7月 Windows专区大版内专家分月排行榜第二2013年5月 其他开发语言大版内专家分月排行榜第二2013年4月 其他开发语言大版内专家分月排行榜第二2012年11月 其他开发语言大版内专家分月排行榜第二2012年6月 其他开发语言大版内专家分月排行榜第二2011年11月 其他开发语言大版内专家分月排行榜第二2011年9月 其他开发语言大版内专家分月排行榜第二2010年6月 其他开发语言大版内专家分月排行榜第二2007年4月 其他开发语言大版内专家分月排行榜第二2006年12月 其他开发语言大版内专家分月排行榜第二2006年11月 其他开发语言大版内专家分月排行榜第二2005年6月 其他开发语言大版内专家分月排行榜第二2003年5月 其他开发语言大版内专家分月排行榜第二2003年3月 其他开发语言大版内专家分月排行榜第二
2013年11月 其他开发语言大版内专家分月排行榜第三2013年8月 其他开发语言大版内专家分月排行榜第三2012年12月 其他开发语言大版内专家分月排行榜第三2012年9月 其他开发语言大版内专家分月排行榜第三2012年8月 其他开发语言大版内专家分月排行榜第三2012年5月 其他开发语言大版内专家分月排行榜第三2011年12月 其他开发语言大版内专家分月排行榜第三2010年12月 其他开发语言大版内专家分月排行榜第三2010年9月 其他开发语言大版内专家分月排行榜第三
2016年3月 其他开发语言大版内专家分月排行榜第二2014年10月 其他开发语言大版内专家分月排行榜第二2013年7月 Windows专区大版内专家分月排行榜第二2013年5月 其他开发语言大版内专家分月排行榜第二2013年4月 其他开发语言大版内专家分月排行榜第二2012年11月 其他开发语言大版内专家分月排行榜第二2012年6月 其他开发语言大版内专家分月排行榜第二2011年11月 其他开发语言大版内专家分月排行榜第二2011年9月 其他开发语言大版内专家分月排行榜第二2010年6月 其他开发语言大版内专家分月排行榜第二2007年4月 其他开发语言大版内专家分月排行榜第二2006年12月 其他开发语言大版内专家分月排行榜第二2006年11月 其他开发语言大版内专家分月排行榜第二2005年6月 其他开发语言大版内专家分月排行榜第二2003年5月 其他开发语言大版内专家分月排行榜第二2003年3月 其他开发语言大版内专家分月排行榜第二
2013年11月 其他开发语言大版内专家分月排行榜第三2013年8月 其他开发语言大版内专家分月排行榜第三2012年12月 其他开发语言大版内专家分月排行榜第三2012年9月 其他开发语言大版内专家分月排行榜第三2012年8月 其他开发语言大版内专家分月排行榜第三2012年5月 其他开发语言大版内专家分月排行榜第三2011年12月 其他开发语言大版内专家分月排行榜第三2010年12月 其他开发语言大版内专家分月排行榜第三2010年9月 其他开发语言大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。如何用汇编语言将十六进制数转化为十进制数输出?_百度知道
如何用汇编语言将十六进制数转化为十进制数输出?
  采用除 10 求余压栈,最后在逐一出栈进行显示,至于实现的原理,拿个实际数据单步走一边就能看明白了。  参考如下:  ;display the unsigned integer value in AX  dec2asc
proc  push
ax  push
dx  push
dx, -1 flag of ending   flag to stack  mov
cx, 10  l_div10:  xor
dx, dx   DX:AX &#47; CX  push
dx  test
ax, ax  jne
l_div10  mov
cx, -1  mov
ah, 2 display character in DL  l_disp:  pop
dx, cx  je
l_ret  add
dl, &#39;0&#39; one-digit value turns to character  int
21 display the digit  jmp
l_disp  l_ret:  pop
ax  ret  dec2asc
其他类似问题
为您推荐:
Sbc a: mov a,A snz c
判断BX带标志-0是否借位
借位就跳出循环 不借位就进行+1 daa模式 jmp END
mov a假设AX=59H BX=0(16进制数)——(10进制=89)这个程序最好写个子程序,AX减得断表示16进制的数还不=0 所以继续加1 如果需要3个寄存器放数据的add a. loop,A mov a,1 mov AX,al
;后面加写寄存器和BL的ADC模式一样daa
十进制转换,bl
;jmp loopEND ;mov a,0adc a,0h mov BX,BX
; 带C标志加daa
十进制转换
您可能关注的推广
十六进制数的相关知识
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

 

随机推荐