LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: lee_Jiang

我想要linux汇编语言的书

[复制链接]
发表于 2004-3-17 18:15:02 | 显示全部楼层
还没学那么高深,汇编这学期刚开课,呵呵。只会一些简单的。
你是计算机系的啊,喜欢PHP么?喜欢的话交流交流吧,我读电子信息的,西电01级
发表于 2004-3-17 18:19:03 | 显示全部楼层
最初由 深空 发表
还没学那么高深,汇编这学期刚开课,呵呵。只会一些简单的。
你是计算机系的啊,喜欢PHP么?喜欢的话交流交流吧,我读电子信息的,西电01级

很想学PHP,但还不会。
发表于 2004-3-20 16:35:52 | 显示全部楼层
这位大哥,试试访问一下“端口”或调用DOS磁盘中断看看,那你就会得到M$的奖励"非法操作"...


JJ拜托,这是protected mode的限制,是任何一个现代的OS都必须具备的基本的能力,如果可以让你随便的使用磁盘I/O,访问端口,你认为是什么结果?在linux下,ring3的application同样没这个能力。这不是microsoft的错,幸好它奖励你了,不奖励就麻烦了
发表于 2004-3-20 16:55:31 | 显示全部楼层
最初由 ilrainyday 发表
JJ拜托,这是protected mode的限制,是任何一个现代的OS都必须具备的基本的能力,如果可以让你随便的使用磁盘I/O,访问端口,你认为是什么结果?在linux下,ring3的application同样没这个能力。这不是microsoft的错,幸好它奖励你了,不奖励就麻烦了

这位大哥,这一点我很清楚。
既然说开了,我就不妨说清楚一点。
windows下的所谓命令行提示符,只是利用了x86芯片自80386以来所提供的虚拟8086的兼容模式,也就是说,可以通过这种模式有限制地运行16位程序。
我这里的意思是,我们的linux舍弃了这种"鸡勒"。出于教学用途,8086这种16位汇编依然是汇编初学首选方案,当进行汇编的时候,windows就无能为力了,因为大家都用masm来汇编,而masm是DOS时代的产品,现在都被VC所取代了;上面提及的虚拟8086的所谓限制,在访问端口或者设备的时候就体现出来了;我们只能用纯DOS来实现这种教学。
相比于Linux,就只有一种32位汇编,它比windows同时具有的16位汇编兼容模式以及windowsAPI32位汇编强多了。

我这样说,不知道各位大哥明白没有。
发表于 2004-3-20 20:06:46 | 显示全部楼层
你说的是v86 mode吧,在v86中可以通过task i/o mapping 来访问端口。这一点IA32 developer manuals vol 3中说的很清楚。
MASM只不过很多人只用它来编写real mode的程序,所以你才会觉得它是only for DOS的。vc是一个c/c++编译器,和汇编有什么联系?

BTW:即使在real mode下,也可以有4GB的寻址空间。这需要使用shadow segment descriptor来完成,也就是常说的big mode,在BIOS初始化的时候,就进入过这个模式。

linux下同样可以编写16bit的汇编代码

mov ax,ds

你难道要说这是32位的代码,仅仅运行在PM下就是32bit吗?
发表于 2004-3-20 20:11:37 | 显示全部楼层
最初由 ilrainyday 发表
你说的是v86 mode吧,在v86中可以通过task i/o mapping 来访问端口。这一点IA32 developer manuals vol 3中说的很清楚。
MASM只不过很多人只用它来编写real mode的程序,所以你才会觉得它是only for DOS的。vc是一个c/c++编译器,和汇编有什么联系?APPLICATION.

我只想问一句,那这位大哥是用masm来汇编Intel格式的8086 DOS汇编,然后在命令行提示符下执行吗?

在windows环境下做汇编,最好用windows32位汇编而非DOS16位汇编;linux下只有32位汇编,且是AT&T格式的。它们本质一样。但我更喜欢后者,现在我所有的汇编项目以及作业都在linux下进行。
发表于 2004-3-20 20:50:14 | 显示全部楼层
linux下只有32位汇编,且是AT&T格式的

mm对什么是32b的汇编理解有误。不是说运行在PM下就是32b了,是否32位主要是从你所使用的寻址方式来看的。如果你编写for real mode的程序,使用的是32位寻址,使用的是32位的寄存器(当然,real mode的限制还是存在的),那么就是32b的,反之亦然。

8086汇编,如果不涉及到硬件I/O等一些特权操作,我就在v86下运行,反正,就在纯DOS下。

这位大哥....

汗... ....
发表于 2004-3-20 20:57:14 | 显示全部楼层
8086汇编,如果不涉及到硬件I/O等一些特权操作,我就在v86下运行,反正,就在纯DOS下。

我的意思一直都是这样。
汗...

那叫你姐姐吧,没错吧。
发表于 2004-3-21 00:40:48 | 显示全部楼层
姐姐妹妹好呀.向你们学习!华工这类大学确实人才济济.:cool:
发表于 2004-3-24 18:32:39 | 显示全部楼层
华工?
不是吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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