| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1777 人关注过本帖
标题:一个三角X引发的“可视化”汇编编程
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:20 回复次数:20 
一个三角X引发的“可视化”汇编编程
写了那个杨辉三角 我就想能不能用汇编去表达一下C语言呢
或者通过对C语言的翻译来学习汇编呢
先发一些简单的吧
本人系自学初学 很多东西不明白 只能看到一些表面上的东西 很多原理性的东西还弄不清楚
发这个贴为的是大家讨论 希望新手有所收获 更希望大牛多给指导

那我们从Hello World!开始吧
在C语言中程序和效果图如下
程序代码:
#include <stdio.h>

int main(void)
{
    char str[128];

    printf("Please input a string: ");
    gets(str);
    puts(str);

    return 0;
}
--
图片附件: 游客没有浏览图片的权限,请 登录注册

现在我们就用汇编来达到这个目的
楼主还看不懂反汇编代码 这个的反汇编代码光是个int 3就有无数个 嘎嘎
我们只是简单的实现与C程序同样的功能就OK了吧 呵呵
汇编的代码就效果图
程序代码:
;#Mode=DOS
;MASMPlus 单文件代码模板 - 纯 DOS 程序
;;; 很遗憾DOS不支持中文字符串? 大牛们有什么办法吗?
assume cs:code, ds:data, ss:stack

stack segment
    db 128 dup(?)
stack ends

data segment
    PutStr           db 'Please input a string: ', '$'
    OutStr           db 128
        OutLen       db ?
        ActualStr    db 128 dup ('$')
    EndPrompt        db 'Press any key to continue', '$'
data ends

code segment
start:             ; Segment register initialize 段寄存器初始化
                    mov     ax, stack
                    mov    ss, ax
                    mov    sp, 128
                  
                    mov    ax, data
                    mov    ds, ax
                  
                    ; Input prompt 输入提示
                    lea    dx, PutStr
                    mov    ah, 09h
                    int    21h
                  
                    ; begin Input string and Output it 开始输入字符串并显示出来
                    lea    dx, OutStr
                    mov    ah, 0ah
                    int     21h              
                
                    ; Set the Cursor 2 row 23 column 设置光标于2行23列
                    mov    ah, 02h
                    mov    bh, 0
                    mov    dh, 2
                    mov    dl, 23
                    int    10h                   

                    ; Output it 显示输入字符串
                    lea     dx, ActualStr
                    mov    ah, 09h
                    int    21h
                  
                    ; Carriage-Return Line-Feed 回车换行
                    call    crlf
                  
                    ; Set Cursor in 3 row 0 column 光标置于3行0列
                    mov    ah, 02h
                    mov    bh, 0
                    mov    dh, 3
                    mov    dl, 0
                    int    10h
                  
                    ; Output End Prompt 输出结束提示
                    lea    dx, EndPrompt
                    mov    ah, 09h
                    int    21h
                  
                    ; View the result and Return DOS 查看结果并返回DOS
                    mov    ah, 01h
                    int    21h
                    mov    ah, 4ch
                    int    21h
                  
                    ; The function of  Carriage-Return Line-Feed 回车换行
crlf:               mov    dl, 0dh
                    mov    ah, 02h
                    int     21h
                    mov    dl, 0ah
                    mov    ah, 02h
                    int    21h
                    ret
code ends

end start
--
图片附件: 游客没有浏览图片的权限,请 登录注册

看吧 其实没有什么汇编基础只要知道几个指令的功能 寄存器的作用 及不到4个中断功能
就能实现这个目的 以前对汇编存有极大的恐惧 迟迟不敢下手 看来是不应该的啦 呵呵。
有兴趣的朋友可以看下 并指出其中的不足 给出更好的方法。。。
搜索更多相关主题的帖子: C语言 include 杨辉三角 东西 
2012-10-06 15:52
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:10 
顶,我来学习的

实现自己既定的目标,必须能耐得住寂寞单干。
2012-10-06 16:20
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:10 
接分  不速结贴不是好唐僧
2012-10-06 16:59
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用信箱有效在2012-10-6 16:59:29的发言:

接分  不速结贴不是好唐僧

速发帖 不速发不是好快递。

梅尚程荀
马谭杨奚







                                                       
2012-10-06 17:12
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 2楼 小习小习
一起学习 嘿嘿


梅尚程荀
马谭杨奚







                                                       
2012-10-06 17:17
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:0 
不接分的好快递绝对不是厨师中的好司机。
2012-10-06 17:17
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用信箱有效在2012-10-6 17:17:56的发言:

不接分的好快递绝对不是厨师中的好司机。

晕倒

梅尚程荀
马谭杨奚







                                                       
2012-10-06 18:59
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
没赶上、、

DOS支持中文字符串一般是用字库 研究这个没啥意思了

我觉得可以加精华各位觉得呢 是原创的罢。。
2012-10-06 19:40
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
还有 其实这里主要是DOS的可视化 而非汇编的可视化。。。
2012-10-06 19:42
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用zklhp在2012-10-6 19:40:27的发言:

没赶上、、

DOS支持中文字符串一般是用字库 研究这个没啥意思了

我觉得可以加精华各位觉得呢 是原创的罢。。

谢谢Z版鼓励啊 我后面还会继续加些东西 望多多给俺撑腰啊(模糊的地方就靠你啦) 呵呵

梅尚程荀
马谭杨奚







                                                       
2012-10-06 20:16
快速回复:一个三角X引发的“可视化”汇编编程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017723 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved