AT&T汇编——写在开始之前

不知不觉,大三就快结束了,所学的计算机相关知识也基本可以说是教完了,该毕业了,所以,打算对自己所学的比较深入的和感兴趣的知识进行一场回笼。也当作是大学的回忆吧。

计划写的内容在:

1.汇编语言

2.C/C++语言

3.Linux c编程

4.linux 网络编程

5.STL源码阅读

6.nginx源代码阅读

不知道写完这些东西,是不是该毕业了。

有人说,要深入理解计算机,有两个途径:自底向上和自顶向下。我想,对于自己,更适合从最基本的开始,由底层向高层前进。

所以, 先拿汇编语言下手吧!

说到汇编语言,记得刚开始接触的时候,那是相当的令人难受,所有的指令我都认识,但组在一起就不认识了。直到后来,照着《一个操作系统的实现》做了一个小OS,才真正不晕了。

记得当初学习汇编的想法很简单,写一个小的操作系统!后来,发现学了汇编,不仅仅只是操作系统,汇编语言还帮我很好的理解了几门不受大家喜爱的课程《计算机组成原理》、《计算机原理与接口技术》、《计算机体系结构》,C/C++语言也有了更深的认识。

说一下自己学汇编语言的书吧:

汇编语言——王爽

80x86汇编语言程序设计教程——杨季文

汇编语言程序设计——Richard Blum

本来想用Intel格式汇编来写后面的文章的,可是,Intel的资料多如牛毛,还是用 AT&T吧,毕竟,Linux内核的汇编语言是用AT&T格式来写的,还有就是《深入理解计算机系统》这本书也是用AT&T来写的。所以,我认为,AT&T格式汇编更有可写性。

AT&T汇编——写在开始之前

时间: 2024-08-09 06:34:30

AT&T汇编——写在开始之前的相关文章

汇编写文件

下面的代码直接gcc 编译.用法 ./a.out file_name msg 命令行第一个参数是文件名,第二个参数是文件的内容 下面的代码说明了在汇编里怎么使用命令行参数(主函数用main而不是以前的_start,主函数写成main用64方式可以拿到内容). 调用系统调用的方式改为64位的方式,貌类系统函数里面有指针类型的变量,32位调用方式就不行(64用syscall,32位用int 0x80 觖发系统调用). 32位系统调用编号表/usr/include/asm/unistd_32.h 64

1.初次汇编写程序

                 终于进入了编写程序的阶段了,哈哈!太高兴了……. 1.当然,开始总会遇到一些麻烦,当用cmd的edit写完了汇编指令后,按照书中的内容,对ASM文件进行编译,连接,那么问题来了,当生成.Obj文件后竟然无法连接,找不到外部文件……好吧,没办法,只有问度娘了.原来是环境没有设置好,我设置的环境是win的环境,而这是在dos的命令下执行的的程序,哦啦,改成dos环境,第一个程序横空出世了.     2.程序出来了,怎样用debug进行追踪呢?我按照书上的办法试了一次

8086汇编写冒泡排序并基于子程序设计输出结果

写在前面:也是万年没更新博客了……大二一年快过去了回首一下发现大二完全就不更新博客……原因很多吧,其一是感觉整理博客虽然能够加深理解对学习帮助很大但是还是很花时间的,效益比较低,也是不如多看看书多刷刷题:其二也可以说是最主要的原因,大二一年比较功利,做事学习也是很侧重性价比,想绩点各方面刷好然后杠一个国家奖学金,因此很少更新博客.这次更新记录我们最后一次汇编实验,很基础但是完全自学然后强行撸掉之后,内心感觉还是很快乐的.就感觉这是我在大一的状态,全身心的攻克一个比较困难的题,怼上一整天的时间,最

嵌入式开发学习(9)<汇编写启动代码之设置栈和调用c语言>

C语言运行时需要和栈的意义: "C语言运行时(runtime)"需要一定的条件,这些条件由汇编来提供.C语言运行时主要是需要栈 C语言与栈的关系:C语言中的局部变量都是用栈来实现的.如果我们汇编部分没有给C部分预先设置合理合法的栈地址,那么C代码中定义的局部变量就会落空,整个程序就死掉了. 我们平时在编写单片机程序(譬如51单片机)或者编写应用程序时并没有去设置栈,但是C程序还是可以运行的.原因是:在单片机中由硬件初始化时提供了一个默认可用的栈,在应用程序中我们编写的C程序其实并不是全

MenuetOS 0.99.26 发布,汇编写的操作系统

MenuetOS 0.99.26 发布,官网上只是简单介绍该版本是一个更新和改进版本,没有详细信息. MenuetOS是一款完全用汇编语言写成的操作系统. 因此它运行起来超快,体积 http://www.zhihu.com/people/kjurwckdhttp://www.zhihu.com/people/faomghttp://www.zhihu.com/people/hzwuojpovhttp://www.zhihu.com/people/yvfkmujhttp://www.zhihu.c

MenuetOS 0.99.71 发布,汇编写的操作

MenuetOS是一款完全用汇编语言写成的操作系统. 因此它运行起来超快,体积...更令人称奇的是它还能运行Quake游戏,新操作系统当前仍然处于开发阶段 http://www.zhihu.com/people/jlaclythttp://www.zhihu.com/people/pklutqptghttp://www.zhihu.com/people/liygeuhttp://www.zhihu.com/people/uxhjhahttp://www.zhihu.com/people/ilzx

汇编写的电话本

头文件 .data ;定义结构体 CONTACTSSTRUCT struct ;名字 szName BYTE 25 dup (0) ;电话号码 szPhNumber BYTE 12 dup(0) CONTACTSSTRUCT ends ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

启动程序实现很简单的功能在屏幕中央 ;打印一行字符串(汇编+c+red hat linux实现)

编程:启动程序实现很简单的功能在屏幕中央 ;打印一行字符串(汇编+c+red hat linux实现) 汇编语言编写: boot.asm启动程序代码: ;我们的启动程序实现很简单的功能在屏幕中央 ;打印一行字符串 org 07c00h   ;org指令明确告诉编译器我程序开始地址是07c00h,而不是 ;原来的00000 ;int汇编指令 int 10h mov ax,cs mov es,ax mov bp,msgstr  ;es:bp  ;指向的内容就是我们要显示的 字符串的地址 mov cx

16位汇编第三讲 分段存储管理思想

内存分段 一丶分段(汇编指令分段) 1.为什么分段? 因为分段是为了更好的管理数据和代码,就好比C语言为什么会有内存4区一样,否则汇编代码都写在一起了,执行的话虽然能执行,但是代码多了,数据多了,搞不清什么是代码 什么是数据了. 汇编分段代码 1 e 1000:0 "Hello$" 首先给1000:0的物理地址写入Hello字符串 2 d 1000:0 显示一下是否显示成功 3 4 mov ax,1000 给ax赋值数据,下面要分段了,所以需要给ax赋值 5 mov ds,ax 开始分