汇编语言的几个问题

1、什么是源程序、汇编程序(编译程序)、连接程序、目标程序、执行程序
2、程序是怎么被执行的(OS系统作用、CPU的并行执行、怎么执行程序的)
3、怎么查看一行C语言对应哪些汇编语言,又对应怎么样的机器语言呢?

1 什么是源程序:就是用高级语言编写的没有编译的程序,包括注释和伪程序(伪 程序就是编译器编译,但没有对应机器码的语句)。据个例子,
assume cs:code
code segment
mov ax,123 //接下来三句有对应机器码的语句,其他是伪程序
mov ax,4c00h
int 21h
code ends
end
这些语句保存为.asm文件就是源程序!不过不能像//注释

2 汇编程序就是将源程序便以为目标程序的工具程序,编译后保存为.obj文件(机器码,是二进制数据)(下载微软的masm.exe);
3 连接程序:目标程序是不能直接执行的,虽然它已是机器码,他要执行,还必须让cpu知道他的大小,调用了什么库,有没有子程序等等,连接程序就扮演了这样的角色,他可以把目标文件生成exe可执行文件(下载微软的link.exe)

4 程序是如何执行的,这涉及操作系统问题,大家知道任何一个通用的操作系统均有一个成为shell的外壳程序,代理用户与硬件交互,windows中的shell外壳程序是command(),开始-》运行,cmd,打开dos,这个就是shell程序(不多说)
程序执行的时候,cmd现将程序加载到内存中,然后将控制权交给要执行的程序,cpu有两个寄存器,cs,ip这两个寄存器始终指向要执行的命令。cpu控制权的转让其实就是cs:ip的交付,程序执行忘了以后必须把控制权换个加载它的程序!

5怎么查看一行C语言对应哪些汇编语言,又对应怎么样的机器语言呢?

c语言生成可执行文件后,你可以通过debug这个自带工具来加载程序,进行跟踪,原理就不介绍了,给你举个例子:

假如你c盘下有个文件叫t.exe(c语言生成的)

进入dos,输入cd,回车,输入,debug t.exe,回车,输入u命令,回车,就可以看到对应的汇编程序,机器码!

不多说了!!!!大概就这样
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-08
我知道3,你用反汇编程序应该可以看到所对应的,机器语言的话人很难把机器语言翻译成汇编的然后再翻译成高级语言,汇编语言翻译成机器语言的话是有张表的,对应表上的内容就可以把汇编翻译成机器语言了,反过来那就太复杂了

1汇编程序是比机器语言高级但比高级语言低的程序(C) 连接就是把它们连接起来呗 目标,执行就是汇编完的了
2先压ZHAI可能就是内存(后面就不知道了,应该是硬件方面的了吧)
如果有错误,请原谅我我不是专业的。
相似回答