吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3014|回复: 4
收起左侧

[其他转载] 有这样一段代码,当调整它们的顺序后,发生了不可思议的事!!!

[复制链接]
90182si 发表于 2017-12-19 20:55
本帖最后由 90182si 于 2017-12-19 21:04 编辑

我在写王爽老师布置的课程设计一,其中的dtoc程序
[Asm] 纯文本查看 复制代码
dtoc:
        push ax
        push dx
        push cx
        push si
        push di
        mov si,0        
tw:        mov cx,10
        call divdw
                
        add cx,48;
        push cx    ;
        or ax,dx
        cmp ax,0
        je ok;就是这四句,如果我把push cx后三句写到add cx,48之前就可以运行,但是有0就跳转了。
于是我先让cx入栈,判断ax,dx是否都为0再跳转,但事实上这样并不能运行,我不知道为什么。。求大佬解惑
                        
        inc si
        jmp tw
ok: mov cx,si
of: pop ax
        mov [di],ax
        inc di
        loop of
        pop di
        pop si
        pop cx
        pop dx
        pop ax
        ret

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

13426913705 发表于 2017-12-19 21:15 来自手机
真·标题党
 楼主| 90182si 发表于 2017-12-19 21:19
whklhh 发表于 2017-12-19 21:21
所以你“并不能运行”的具体表现是什么,是编译报错还是运行到这里会停止。。。自己调试试试呗_(:з」∠)_监控着寄存器的变化
fanvalen 发表于 2017-12-19 22:26
本帖最后由 fanvalen 于 2017-12-19 22:27 编辑

没有找到你说的设计一的出处,不过你可以百度搜王爽汇编第几版答案找到对应的章节查看
一些问题以及说明:



1



第一种思路的代码有错,无法得到正确的实验结果,我刚开始用的是第一种思路,

我想错误就在于寄存器的冲突的问题没有解决好。我便写了第二中思路的代码,

这个代码算是实验

7

和实验

9

的结合,先把要显示到屏幕上的那些数据以相同的

格式存放在

table

段中,然后直接将

table

段中的内容一个字节一个字节地复制到

显示缓冲区的偶地址上,

奇地址存放字符的颜色属性白色

07h



因此不用调用子程



show_str





2

、代码

2

的一个缺点是有可能造成内存空间资源浪费,因为比代码

1

多定义了一个

672

字节的内存空间。

优点是程序很清晰,

可以看成一块块的,

每块有不同的作用,

在用

debug

跟踪时,如果发现问题,比较方便进行查找。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 11:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表