小氼儿 发表于 2013-11-9 19:44:07

输入16位二进制数将其转换为10进制显示



以上是我编的一部分,但是到了46行,我只编了一个显示“=”,可是结果却显示了三个“=”,为什么?还有十六进制怎么转换为十进制显示呢,不太会啊,求助大神……

xuaner0719 发表于 2013-11-9 21:12:01

不是很懂哦,顶下,坐等大神

初学者报到 发表于 2013-11-9 22:03:06

:lol:貌似我也不懂!

要没时间了 发表于 2013-11-21 11:25:11

好厉害的样子。

尽处叹飘零 发表于 2013-11-23 17:19:24

我想把bcd变量中2个字节的bcd码转化为4个字节的bcd码,请懂的帮忙
code      segment
      assume cs:code
bcd db         12h,34h
bcd2         db 0,0,0,0
start:         mov al,bcd

接下来怎么编?

qq348093088 发表于 2013-11-25 10:32:13

本帖最后由 qq348093088 于 2013-11-27 16:13 编辑

;子程序
crlf:
mov ah,2
mov dl,0x0d
int 0x21
mov dl,0x0a
int 0x21
;-----------------
;你把0DH,0AH传给AL了,而DL还是=

ravenhu13 发表于 2013-11-25 11:30:14

1.直接用0nXX,不要用H后缀
2.16转10进制后,再加30,就可以显示了。
我没仔细看,只看了你的问题。
至于会出现===,可能是算法出错,但是它没显示出来,直接显示=号

小氼儿 发表于 2013-11-27 23:17:28

qq348093088 发表于 2013-11-25 10:32 static/image/common/back.gif
;子程序
crlf:
mov ah,2


我也发现了,一时手误……

小氼儿 发表于 2013-11-27 23:18:26

ravenhu13 发表于 2013-11-25 11:30 static/image/common/back.gif
1.直接用0nXX,不要用H后缀
2.16转10进制后,再加30,就可以显示了。
我没仔细看,只看了你的问题。


为什么呢?为什么一定要用0nXX的形式啊

qq348093088 发表于 2013-12-3 12:20:26

;关于16进制转10进制显示
;我是用的nasm,和masm区别不大
jmp _start:
_data_16:
dw 0xABCD
_data_10:
db 0,0,0,0,0
_start:
mov ax,_data_16
mov ds,ax
mov ax,_data_10
mov es,ax

mov ax,
mov bx,10
mov cx,5
mov si,cx
_rep:
dec si
xor dx,dx
div bx
mov ,dl
loop _rep

mov ax,0xB800
mov ds,ax
xor bx,bx
mov ah,7
mov cx,5
_show:
mov al,
add al,0x30
mov ,ax
inc si
inc dx
inc dx
loop _show
jmp $

∮清云∮ 发表于 2013-12-4 20:13:14

不懂顶下楼主

你好,曾桑 发表于 2015-6-12 23:33:24

学习学习

caster 发表于 2015-6-15 11:07:32

强烈支持楼主ing……
页: [1]
查看完整版本: 输入16位二进制数将其转换为10进制显示