level 8
纯汇编语言的系统,是指的这个吧。
menuetos.org - 100% Assembly language OS
2009年09月20日 03点09分
7
level 8
freebasic是先将*.bas(basic语法文件)翻译成*.asm(即汇编语法文件)。
然后用GNU的as.exe和ld.exe生成程序。
例如,freebasic里的hello程序。
print "hello,world!"
用"fbc.exe -r hello.bas"命令就得到了它对应的汇编语言文件。
D:\freebasic>type hello.asm
.intel_syntax noprefix
#01.bas' compilation started at 11:49:46 (FreeBASIC v0.20.0b)
.section .text
.balign 16
_fb_ctor__01:
.Lt_0001:
push 1
push 12
push offset _Lt_0003
call _fb_StrAllocTempDescZEx@8
push eax
push 0
call _fb_PrintString@12
.Lt_0002:
ret
#01.bas' compilation took 0.000
18158732462
47546 secs
.section .data
.balign 4
_Lt_0003: .ascii "hello,world!\0"
.section .ctors
.int _fb_ctor__01
不过这个是AT&T风格形式的,非intel风格形式的。GAS是AT&T风格的。nasm是intel风格的。
2009年09月20日 03点09分
8
level 8
不过这个程序会变成无法自动关闭的程序。
因为,它的cat线程要等待键盘事件才能退出。
而主进程却要等待cat线程结束才能结束。
但,最后主进程却抢了cat线程的键盘事件。
恩,各位大牛随便拍砖吧。
我初学程序的人。
2009年09月21日 13点09分
13
level 8
反正,这到最后总是会变成一个僵死程序。
-_-!!!
我是初学者,汗,这个水平。。。
2009年09月22日 10点09分
15
level 6
如果仅从一个程序是一个无限循环或等待激活的进程而断定该程序
是一个僵死程序就有些偏颇了。关键是这种性能应该使用在何处。
不能说一个进程是一个无限循环或等待激活的进程就不好,
窗口主函数的进程、捕获消息的进程、
内核中分配优先级和弹出压入进程的任务管理程序都是:
无限循环或等待激活的进程。
当登山者看见尚远离自己的封顶时常会这样像你这样感叹地,
但是也应该看到其实你又比许多人都登在前面。
比如:freebasic我就从来都没有尝试过。
2009年09月22日 11点09分
16
level 6
话讲多了难免出错,请允许我补充:
我在16楼所讲的“进程”应该为“进程以及线程”
2009年09月22日 13点09分
17
level 8
纯文本的"hello,world!"只一个线程在运行。
带窗体的,就有三个线程了。
12楼的那个,创造出来的线程明明已经挂了。
但主进程还是没关闭。
因为发现到最后数值变成1000后,就由4个线程减少为3个线程了。
-_-!!!
我菜。没能理解原因。
2009年09月23日 09点09分
19
level 6
等你解决了这个问题后我再加精,
现在的我有一个缺点,就是已经进入到吧主这个角色里,
就是恨不得每天都有许多贴能让我理直气壮的加精。
-_-!!!
2009年09月23日 09点09分
20
level 8
目前的状态是,忍耐寂寞才是最重要的。
没事多去做点测试,还有翻译什么的,也不错。
:)
2009年09月23日 10点09分
21
level 6
得:
听你的,多做些测试。
我没有用过freebasic, 但曾用过ASM32.
记得编译时有许多参数作为开关的,
参数的不同会导致出现迥异于最初设想的效果。
2009年09月23日 19点09分
22
level 6
吃程序员或者软件工程师这门饭的确是辛苦的,
常常有时写程序明明是对的但是调试时就是不对。
2009年10月03日 23点10分
24