| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1803 人关注过本帖
标题:我写的第一个汇编代码。
只看楼主 加入收藏
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
结帖率:96%
收藏
已结贴  问题点数:20 回复次数:24 
我写的第一个汇编代码。
总感觉能在自己的电脑里找到,果然找到了。说最后更改时间是 2010 年 1 月 10 日。
和我印象里学汇编的时间出入不大。我应该是 09 年暑假开始学的,看的书讲的是 masm。在 windows 下实践半年,学的差不多了才开始转战 linux,好像是比较合逻辑的。

其实就是 hello word 而已。还有详细的注释,应该是怕日后自己也看不懂。AT&T 语法的,但其实和 intel 语法区别也不是很大。
比如 mov a, b 的意思是 move a to b,和正常说话的语序是一样的。寄存器的名字前要加 %, 变量或立即数前要加 $。
不过看了看,感觉我现在能写的最复杂的汇编也许也就这个程度。

程序代码:
.data   # section declaration

msg:
    .ascii "Hello, world!\n"
    len = . - msg               # length of string

.text   # section declaration

# we must export the entry point to the ELF linker or loader. They
# conventionally recognize _start as their entry point. Use ld -e foo to
# override the default.

    .global _start

_start:

# same as write(1, msg, len)

    movl    $len, %edx
    movl    $msg, %ecx
    movl    $1, %ebx
    movl    $4, %eax    # the system call number of write() is 4.
    int     $0x80       # call kernel

# exit(0)

    movl    $0, %ebx
    movl    $1, %eax    # exit() is 1
    int     $0x80

搜索更多相关主题的帖子: hello 寄存器 
2012-09-01 14:09
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:2 
膜拜大牛 膜拜大作 顺便接分
2012-09-01 15:19
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:3 
表示和王爽的大不相同啊



梅尚程荀
马谭杨奚







                                                       
2012-09-01 16:19
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
以下是引用有容就大在2012-9-1 16:19:41的发言:

表示和王爽的大不相同啊

这是at&t风格 和intel风格不大一样 有些地方是反的 比如源操作数和目的操作数
2012-09-01 16:26
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:3 
回复 4楼 zklhp
貌似比intel的复杂难辨些

梅尚程荀
马谭杨奚







                                                       
2012-09-01 18:02
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
收藏
得分:3 
额,还没有学汇编。

我是来蹭分的。。。
2012-09-01 18:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
学习了,佩服之水犹如长江东流滔滔不绝!

授人以渔,不授人以鱼。
2012-09-01 19:22
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:3 
学习了,佩服之水犹如长江东流滔滔不绝!
2012-09-01 20:30
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
以下是引用有容就大在2012-9-1 18:02:38的发言:

貌似比intel的复杂难辨些

语法上有区别,但不是很大。毕竟汇编指令都是一样的。难辨的原因可能是论坛不识别这种语法,所以颜色比较单一吧。

顺便结帖。
2012-09-01 23:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
下次发百分帖才成

授人以渔,不授人以鱼。
2012-09-01 23:41
快速回复:我写的第一个汇编代码。
数据加载中...
 
   



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

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