在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 3207|回复: 5

MIPS Assembly Language Programming CS50 Discussion and Project Book

[复制链接]
发表于 2008-6-9 10:05:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
1 Data Representation 1
1.1 Representing Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Unsigned Binary Numbers . . . . . . . . . . . . . . . . . . . . 1
1.1.1.1 Conversion of Binary to Decimal . . . . . . . . . . . 2
1.1.1.2 Conversion of Decimal to Binary . . . . . . . . . . . 4
1.1.1.3 Addition of Unsigned Binary Numbers . . . . . . . . 4
1.1.2 Signed Binary Numbers . . . . . . . . . . . . . . . . . . . . . 6
1.1.2.1 Addition and Subtraction of Signed Binary Numbers 8
1.1.2.2 Shifting Signed Binary Numbers . . . . . . . . . . . 9
1.1.2.3 Hexadecimal Notation . . . . . . . . . . . . . . . . . 9
1.2 Representing Characters . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Representing Programs . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Memory Organization . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.1 Units of Memory . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.1.1 Historical Perspective . . . . . . . . . . . . . . . . . 13
1.4.2 Addresses and Pointers . . . . . . . . . . . . . . . . . . . . . . 13
1.4.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 MIPS Tutorial 17
2.1 What is Assembly Language? . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Getting Started: add.asm . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1 Commenting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2 Finding the Right Instructions . . . . . . . . . . . . . . . . . . 19
i2.2.3 Completing the Program . . . . . . . . . . . . . . . . . . . . . 20
2.2.3.1 Labels and main . . . . . . . . . . . . . . . . . . . . 20
2.2.3.2 Syscalls . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Using SPIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Using syscall: add2.asm . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.1 Reading and Printing Integers . . . . . . . . . . . . . . . . . . 25
2.5 Strings: the hello Program . . . . . . . . . . . . . . . . . . . . . . . 26
2.6 Conditional Execution: the larger Program . . . . . . . . . . . . . . 28
2.7 Looping: the multiples Program . . . . . . . . . . . . . . . . . . . . 31
2.8 Loads: the palindrome.asm Program . . . . . . . . . . . . . . . . . . 33
2.9 The atoi Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.9.1 atoi-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.9.2 atoi-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.9.3 atoi-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.9.4 atoi-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.10.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.10.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.10.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3 Advanced MIPS Tutorial 43
3.1 Function Environments and Linkage . . . . . . . . . . . . . . . . . . . 43
3.1.1 Computing Fibonacci Numbers . . . . . . . . . . . . . . . . . 45
3.1.1.1 Using Saved Registers: fib-s.asm . . . . . . . . . . 45
3.1.1.2 Using Temporary Registers: fib-t.asm . . . . . . . 47
3.1.1.3 Optimization: fib-o.asm . . . . . . . . . . . . . . . 48
3.2 Structures and sbrk: the treesort Program . . . . . . . . . . . . . . 50
3.2.1 Representing Structures . . . . . . . . . . . . . . . . . . . . . 51
3.2.2 The sbrk syscall . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4 The MIPS R2000 Instruction Set 55
4.1 A Brief History of RISC . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2 MIPS Instruction Set Overview . . . . . . . . . . . . . . . . . . . . . 56
4.3 The MIPS Register Set . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4 The MIPS Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4.1 Arithmetic Instructions . . . . . . . . . . . . . . . . . . . . . . 59
4.4.2 Comparison Instructions . . . . . . . . . . . . . . . . . . . . . 60
4.4.3 Branch and Jump Instructions . . . . . . . . . . . . . . . . . . 60
4.4.3.1 Branch . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.3.2 Jump . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.4 Load, Store, and Data Movement . . . . . . . . . . . . . . . . 61
4.4.4.1 Load . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.4.2 Store . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4.4.3 Data Movement . . . . . . . . . . . . . . . . . . . . . 63
4.4.5 Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . 63
4.5 The SPIM Assembler . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.5.1 Segment and Linker Directives . . . . . . . . . . . . . . . . . . 64
4.5.2 Data Directives . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6 The SPIM Environment . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6.1 SPIM syscalls . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.7 The Native MIPS Instruction Set . . . . . . . . . . . . . . . . . . . . 65
4.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.8.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5 MIPS Assembly Code Examples 69
5.1 add2.asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2 hello.asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3 multiples.asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.4 palindrome.asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.5 atoi-1.asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.6 atoi-4.asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.7 printf.asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.8 fib-o.asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.9 treesort.asm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

cs50-asm.pdf

328.5 KB, 下载次数: 17 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2008-6-16 05:06:15 | 显示全部楼层
Thanks for sharing
发表于 2008-6-20 09:09:42 | 显示全部楼层
downloading thanks
发表于 2008-8-21 16:21:36 | 显示全部楼层
好东西啊
发表于 2008-8-22 01:35:27 | 显示全部楼层

《部落战争》带您翻开历史梦回西元前

薇拉《部落战争》在国内运营两年来,获得了国内玩家广泛的赞许与厚爱,其文化氛围浓郁的历史背景与世界观,给了玩家很强的代入感,让玩家置身其中亲身体验了一次古欧洲的铁血国战。关于这段历史的描述有很多版本,给人以无限遐想的空间。今天薇拉《部落战争》就带您重新翻开这段迷离的历史,让我们一起在《部落战争》中梦回西元前。
古欧洲大陆是一个种族支脉繁多,英雄传说鹊起的世界,其中法兰西与德意志与罗马是大陆中三个具有代表性的国家。他们的文化源远流长,纵横交错几乎涵盖了整个欧洲大陆的发展史。同时,这些国家的组织架构比较松散,很多时候都在以群居部落联邦的形式存在着,种族之间并没有很明确的界限,除了罗马具有相对完善的社会体制与国家制度,日耳曼与法兰克更是很多文化习俗相近的民族的统称,例如民族大迁徙后从日尔曼人中演化出斯堪的纳维亚民族、英国人、弗里斯兰人和德国人,后来这些人又演化出荷兰人、瑞士的德国人、加拿大、美国、澳大利亚和南非的许多白人。在奥地利也有许多德国人。许多这些新的民族今天都是与其它民族混合而成的。在绵延数百年的历史长中,日耳曼、高卢与罗马帝国的种族后裔也是战事不断,其中公元1296年,英格兰国王爱德华一世吞并了苏格兰。威廉.华莱士领导苏格兰人奋起反抗,赢得独立的故事更是被拍成电影《勇敢的心》之后广为流传。
在《部落战争》中,为了真实重现这段历史各民族之间的原貌,罗马帝国拥有昂贵的士兵,无可否认是全能型的,只要度过前期的经济危机,一只雄壮的铁甲雄狮将所向披靡。低调的高卢士兵前期精于防守,随着后期骑兵的出现,高卢骑士团的战马嘶鸣令所有对手闻风丧胆。日耳曼拥有强悍的攻击力,天生的掠夺者,在上面的介绍中,日耳曼种族的构成是最为复杂的,他们被视为蛮荒部族,与强悍的攻击能力相比,偏弱的防御也给日耳曼族的首领们带来了无尽的烦恼。
相比这些单兵作战能力,《部落战争》更是在各种族合纵连横的策略上做足文章,一场战争的胜利绝不是仅靠战斗就可以解决的问题,不断的寻找联盟,不断的扩大版图,真实的历史重现,您将亲身体会到威廉.华莱士那声“Free-dom”所透出的无奈与苦涩。加入《部落战争》您将有机会亲手改写历史,逆转乾坤,成就欧洲之王。

北京到佩皮尼昂机票|北京至佩皮尼昂机票价格|法国机票查询|国际机票
北京到坎佩尔机票|北京至坎佩尔机票价格|法国机票查询|国际机票
北京到雷恩机票|北京至雷恩机票价格|法国机票查询|国际机票
北京到罗德兹机票|北京至罗德兹机票价格|法国机票查询|国际机票
发表于 2008-8-27 08:59:01 | 显示全部楼层
asfafdsfdsafadsf
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 19:28 , Processed in 0.020983 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表