Snow 发表于 2011-7-17 10:08:21

王爽汇编实验十第三题

我编写的一个数字转字符串函数。开始我先是假设已经知道有多少个位(如12666 有五个位)写出了这个函数
;数转字符串函数
dtoc:
push bx
push dx
push si
;取得余数
div bx;dx=6 ax=1266
push dx
mov dx,0
div bx;dx=6 ax=126
push dx
mov dx,0
div bx;dx=6 ax=12
push dx
mov dx,0
div bx;dx=2 ax=1
push dx
mov dx,0
div bx;dx=1ax=0
push dx
mov dx,0
;取得余数
mov cx,5
s:
pop dx
add dx,30h
mov ,dx
inc si
loop s
mov ,0
pop si
pop dx
pop bx
ret
;数转字符串函数


然后我改成不知道这个数有多少位的情况 是这样

;数转字符串函数
dtoc:
push bx
push dx
push si
mov bp,0;作计数器 计算ax中的数字有多少位
;取得余数
s0:
div bx
push dx
mov dx,0
mov cx,ax
inc bp
jcxz s
jmp s0
;取得余数
mov cx,bp
s:
pop dx
add dx,30h
mov ,dx
inc si
loop s
mov ,0
pop si
pop dx
pop bx
ret
;数转字符串函数

但是改成这样只后运行时出现错误 弹出一个对话框说是无效指令为什么呢
页: [1]
查看完整版本: 王爽汇编实验十第三题