- [anwu00] 写反了,最小为1001H,最大为2000H 05/10 11:04
- [crazyman] 博主确实好久不见了。 这里是一个开始,希望更多人都能从这里明确方向,开始自己的计算机之路。 08/16 14:55
- [游客] 你那个循环3FH错了 应该是循环40H 因为是添入0-63 就是添64次 08/02 17:27
- [游客] 我猜是因为2000:0000这段是给当成了一段栈寄存器使用了 所以一些数据会往里写入 写入的数据有的 07/29 23:00
- [游客] 2^N=寻址能力 N是总线宽度 算出的能力是B为单位 比如宽度13的CPU 2^13=8192 07/29 22:56
- [游客] 恩,有道理 04/08 12:25
- [atel] 那主程序我测试过的,可以显示的.但是加载到了软盘就不行了. 04/06 22:36
- [wdm] 没有错误啊。 我试了,运行ok的! 04/06 18:17
- [wdm] 说明程序还是有问题哟。 建议你一点一点的来做,先做一显示功能选项的界面吧。 然后在一点点的进行功 04/06 18:10
- [atel] 有什么错误? 04/04 21:33
[2008-03-14 12:10] 实验十第三个子程序
调用结果如上.
dtoc: push ax
push bx
push cx
push dx
push si ;要用到的寄存器数据入栈.
mov si,0
mov byte ptr [si],0
dtoc_rem: mov dx,0
mov bx,10
div bx
push dx
add byte ptr [si],1
mov cx,ax
jcxz dtoc_main ;判断商是否为0.
jmp short dtoc_rem ;连除10并取每次的余数保存.
dtoc_main: mov cl,[si] ;取余的个数.
dtoc_change: pop ax
add al,30h
mov [si],al
inc si
loop dtoc_change ;把余数变字符放进数据段.
mov byte ptr [si],0 ;在字符串后面加0.
pop si
pop dx
pop cx
pop bx
pop ax
ret
dtoc: push ax
push bx
push cx
push dx
push si ;要用到的寄存器数据入栈.
mov si,0
mov byte ptr [si],0
dtoc_rem: mov dx,0
mov bx,10
div bx
push dx
add byte ptr [si],1
mov cx,ax
jcxz dtoc_main ;判断商是否为0.
jmp short dtoc_rem ;连除10并取每次的余数保存.
dtoc_main: mov cl,[si] ;取余的个数.
dtoc_change: pop ax
add al,30h
mov [si],al
inc si
loop dtoc_change ;把余数变字符放进数据段.
mov byte ptr [si],0 ;在字符串后面加0.
pop si
pop dx
pop cx
pop bx
pop ax
ret
评论次数(3) |
浏览次数(262) |
类型(汇编实验) |
收藏此文 |
[ wdm 发表于 2008-03-14 13:31 ]
恩。不错。楼主是不是考虑一下扩展一下这个题目,能够处理大于655360的数据呢。比如说00FFFFFFH。现在可以考虑一下,后面的程序也会遇到的。呵呵
[ hantangtianxia 发表于 2008-03-14 16:12 ]
是挺好 向博主学习
[ 游客 发表于 2008-03-14 19:46 ]
12666