注册 登录
编程论坛 汇编论坛

单纯的用汇编写的程序 能在XP上运行吗?

wobianlong 发布于 2012-09-03 21:08, 1080 次点击
单纯的用汇编写的程序  能在XP上运行吗?
会使得系统崩溃还是,自己就程序报错了?
又或者汇编程序并未触及到操作系统的底线 而使得该汇编运行?
到底是怎么样呢
24 回复
#2
zklhp2012-09-03 21:10
看你用汇编写的是啥东西了 如果是windows程序 为啥不能运行

如果是驱动 那得有相应的权限并采用相应的加载方式来运行

具体还是跟程序类型有关 而非语言 汇编有什么神的
#3
wobianlong2012-09-03 21:28
回复 2楼 zklhp
感觉汇编可以直接 对寄存器啊硬件什么进行控制
如果胡乱编写的话 是不是会导致系统崩溃了
用汇编语言直接写进某些不能写的内存区域  会崩溃
#4
信箱有效2012-09-03 21:34
问题点数:13  
#5
zklhp2012-09-03 21:34
以下是引用wobianlong在2012-9-3 21:28:34的发言:

感觉汇编可以直接 对寄存器啊硬件什么进行控制
如果胡乱编写的话 是不是会导致系统崩溃了
用汇编语言直接写进某些不能写的内存区域  会崩溃

在目前的操作系统上 一般不会 因为现在的操作系统用户程序和内核有一个隔离 用户程序的问题不会对系统也就是内核造成影响 最多就是程序崩溃了

如果是驱动等东西 很可能造成系统出问题 但用其他语言写 也一样 出问题系统崩溃

另外 你说的这些还停留在DOS时代的系统 现代的系统 一个程序一般只能对自己的内存等东西进行操作 如果操作不当大不了退出 不会有什么很大的问题 但DOS甚至是win95/98/ME那个时代不同 那时候的操作系统不是很完善

现在的操作系统下 汇编和其他编程语言一样 是平等的 这是操作系统决定的 不是汇编决定的 当然 即使是现在 汇编也适合做一些其他语言不能的事 不过这种事很少了
#6
zklhp2012-09-03 21:35
以下是引用信箱有效在2012-9-3 21:34:24的发言:

问题点数:13  

虽然少 但我知道楼主每次结题都非常迅速。。
#7
pangding2012-09-03 21:37
我也来回答回答问题。
#8
pangding2012-09-03 21:38
以下是引用wobianlong在2012-9-3 21:28:34的发言:

感觉汇编可以直接 对寄存器啊硬件什么进行控制
如果胡乱编写的话 是不是会导致系统崩溃了
用汇编语言直接写进某些不能写的内存区域  会崩溃

一般这种说的崩溃是说你写的程序崩溃,不是说的操作系统。

你写的程序有非法操作,操作系统看不下去就给你强制关闭了。是指这个。
#9
信箱有效2012-09-03 21:39
蹭点分。据说楼主结贴很迅速。
#10
zklhp2012-09-03 21:41
你们应该多回答问题 每次都我答多没意思
#11
pangding2012-09-03 21:41
除了写硬件相关的驱动以外,为了充分发挥硬件效能而手工优化的时候还是能经常看见汇编语言的应用。
#12
pangding2012-09-03 21:42
以下是引用zklhp在2012-9-3 21:41:44的发言:

你们应该多回答问题 每次都我答多没意思

不参考你的回答,我一般什么也答不出来。
#13
zklhp2012-09-03 21:43
以下是引用pangding在2012-9-3 21:42:19的发言:


不参考你的回答,我一般什么也答不出来。

、、、、、、、、、、、、、、、、、、、、、、
#14
pangding2012-09-03 21:44
以下是引用信箱有效在2012-9-3 21:39:37的发言:

蹭点分。据说楼主结贴很迅速。

希望楼主结帖的时候,能分辨一下什么人是明显在蹭,什么人是在努力帮助楼主解决问题。
这样会使大家积极答题,而不是积极灌水。
#15
zklhp2012-09-03 21:44
以下是引用pangding在2012-9-3 21:41:51的发言:

除了写硬件相关的驱动以外,为了充分发挥硬件效能而手工优化的时候还是能经常看见汇编语言的应用。

貌似一般人的【手工优化】可能还不如编译器的呢

现在我还真不好找一个手工优化明显比编译器优化的好的例子。。 pangding版主有么
#16
信箱有效2012-09-03 21:45
楼主的问题,都是让人答无可答的那一类。
#17
信箱有效2012-09-03 21:46
我都是一直在努力蹭分的同时在努力帮助楼主
#18
zklhp2012-09-03 21:47
以下是引用信箱有效在2012-9-3 21:45:34的发言:

楼主的问题,都是让人答无可答的那一类。

我每次都能答上来 看来你答题经验不够丰富啊
#19
zklhp2012-09-03 21:48
以下是引用信箱有效在2012-9-3 21:46:55的发言:

我都是一直在努力蹭分的同时在努力帮助楼主

速度把你发的那个10分帖结了 我好睡觉去了 明天早起搬砖
#20
信箱有效2012-09-03 21:50
楼主结贴的时候千万记得点那个 散分结贴 。 这几天论坛搞促销,选散分结贴散一返一,可别浪费了。
#21
wobianlong2012-09-03 21:51
额,楼主自己感觉 是编译器的主要原因
这个问题 楼主觉得难以理解,
什么平台的编译器就有什么样的结果
就是好像int abc
怎么给abc分配空间,分配在哪都是编译器的事情
但是如果用汇编直接控制某个内存区域 难以想象,
#22
zklhp2012-09-03 21:53
以下是引用wobianlong在2012-9-3 21:51:12的发言:

额,楼主自己感觉 是编译器的主要原因
这个问题 楼主觉得难以理解,
什么平台的编译器就有什么样的结果
就是好像int abc
怎么给abc分配空间,分配在哪都是编译器的事情
但是如果用汇编直接控制某个内存区域 难以想象,

如果你对汇编和高级语言有一定的了解这个问题就很容易理解的 但貌似你也不懂 所以我也讲不明白 因为牵扯很多东西
#23
wobianlong2012-09-03 22:04
终于
最后讨论了一大堆楼主还是不明白
不求甚解
散分散分 见者有份
就好像是有才的捧个才场,或者热闹场
#24
有容就大2012-09-03 22:20
好读书 不求甚解是最高境界~~
#25
pangding2012-09-03 23:04
以下是引用zklhp在2012-9-3 21:44:39的发言:


貌似一般人的【手工优化】可能还不如编译器的呢

现在我还真不好找一个手工优化明显比编译器优化的好的例子。。 pangding版主有么

有的是。

很多编译器的 c 语言函数库都是用汇编优化的。
你能想像不用汇编写 double sin(double x) 会是个什么样子吗?intel 硬件就会算 sin 不用干什么?

还比如实现大数库,你得自己定义一个数据类型吧。效能高的库都是要用满硬件的每一位,用汇编可以实现出 64 位的按位加法。可以使用溢出位判断进位等等。速度一般是 c 语言数据类型的 10 倍。


[ 本帖最后由 pangding 于 2012-9-3 23:06 编辑 ]
1