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命令,回车,就可以看到对应的汇编程序,机器码!
不多说了!!!!大概就这样
温馨提示:答案为网友推荐,仅供参考