1、如何编写完整的汇编语言程序?
用编译和连接程序,将它们编译连接成可执行文件,在操作系统中运行。
2、汇编源程序从写出到最终执行的简要过程?
1、(第一步)用文本编辑器编写汇编源程序。
2、(第二步)对源程序进行编译连接。
编译产生目标文件,
连接程序生成(可在操作系统中运行的)可执行文件。
3、可执行文件包括什么?
3、1程序、数据。
3、2相关描述信息。
程序是?
从源程序中的汇编指令翻译过来的机器码。
数据是?
源程序中定义的数据。
相关描述信息?
程序多大,占用多少内存空间。
4、(第三步)执行可执行文件中的程序。
操作系统-按照可执行程序的-描述信息,
将-可执行文件–的机器码和数据–加载入内存。
并进行初始化(比如设置CS:IP指向第一条要执行的指令)
5、在汇编语言源程序中包含几种指令?
两种。汇编指令和伪指令。
汇编指令是?
有–对应的机器码的指令,可以被编译为机器指令,最终被CPU执行。
伪指令?
没有对应的机器码的指令,不可以被编译为机器指令,最终不被CPU执行。
那么伪指令由谁来执行?
由编译器来执行。
6、伪指令有哪些?
段名segment
…
段名 ends
这个有什么用?
定义一个段。
code segment
。。。
code ends(end segment)
这是一个代码段。
汇编源程序,会将什么分为不同的段?
代码。指令。数据。栈。分为不同段。
7、如何结束汇编源程序?
end
8、assume有什么用?
假设某一 段寄存器和
程序中的一个用segment…ends定义的段相关联。
9、这本书中讨论的源程序和程序区别?
源程序=源程序文件的所有内容
程序=最终由计算机执行、处理的指令或数据
10、这幅图的解释?
程序最先以汇编指令的形式存在源程序中,经编译、连接后转变为机器码,存储在可执行文件中。
11、codesg 是一个段的名字,会被怎么样?
这是一个标号,也是段名。会被编译连接程序处理为一个段的段地址。
12、
13、什么是程序返回?
mov ax,4c00h
int 21h
先在DOS(一个单任务操作系统)基础上,讨论一下这个问题。
一个程序p2在可执行文件中,
则必须有一个正在运行的程序p1,
将p2从可执行文件中加载如内存后,
将CPU的控制权交给p2,p2才能运行。
p2运行后,p1暂停运行。
p2运行完毕后,应该将CPU的控制权交给p1,p1继续运行。
程序返回:一个程序结束后,将CPU的控制权交还给使它运行的程序。
14、
15、
编辑源程序?
打开文本,写汇编源程序,以.asm保存。
编译,生成包含机器码的目标文件。
编译就要用编译器。我们用的是masm5.0汇编编译器,文件名masm.exe
假设汇编编译器在c:\masm目录下。
编译后会得到,1.obj文件。
16、
连接
17、在程序返回时,我们运行的时p2,谁是那个p1呢?
cmd
18、
19、DOS系统中.exe文件中程序的加载过程