《汇编语言》(王爽)第4章 第一个程序--笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可执行文件包括:程序和数据、相关描述信息(程序的大小等)
1)编写源程序(txt)——<编译连接>——目标文件——<连接>——可执行文件(exe)1.4.1 一个源程序从写出到执行的过程
机器指令由CPU 执行,伪指令由编译器执行
1)段名:segment (段名也叫:标号)
…
段名:ends(=end segment)
段:
2)整个程序的结束:end
3)assume:假设。把一个段和一个寄存器联系起来。eg. assume cs:段名
4)伪指令:
1.源程序:包括程序和伪指令
1)程序:源程序中最终由计算机执行、处理的指令或数据
2)区分源程序和程序
2.区分几个和结束相关的概念
3.语法错误:编译器可以察觉。比如关键词出错
1)逻辑错误:一般难以察觉,比如缺少返回程序的代码
2)注:如果mov ax,abcH 实际上abc 是一个变量,而不是一个16进制。因为如果16进制由字母开头,需要在前面加上0
3)语法错误和逻辑错误
4.4.2 源程序
使用DOS 里面的Edit ,保存为".asm"文件
1.4.3 编译源程序
进入masm 目录(使用微软的masm 5.0汇编编译器)
1.severe error 1)warning error
2)如果没有以下错误就可以成功生成目标文件OBJ
2.编译过程可以产生三个输出文件:目标文件(.obj)、列表文件(.lst)、交叉引用文件(.crf)。后面两个是中间结果。注:目标文件存有机器码,但是有些内容不能直接生成可执行文件——这一步交给连接来做
3.4.4 编译
使用微软的Overlay Linker 3.60连接器
1.可能产生的三个文件:映像文件(.map )、可执行文件(.exe)、库文件(.lib)
2.源程序很大,可以分成几个远程秀文件,分别编译,然后连接成一个可执行文件1)如果程序中调用了子程序,可以通过连接来调用
2)见编译3
3)连接的作用:
3.4.5 连接
后面加上分号";"
1.4.6 简化方式编译和连接
执行后不会显示结果
1.4.7 exe 的执行
对于任何通用的操作系统,都有一个shell(外壳)
1.对于DOS 来说, 这个程序就是它的shell ,在DOS 中叫做命令解释器
2.3.
4.8 DOS 里面谁来把可执行文件载入内存并使它运行
使用debug 来加载程序1.exe 的时候,并不放弃对CPU 的控制
1.寄存器cx 存放的是程序的长度
2.4.9 程序执行过程跟踪
4c 只是21H 里面的其中一个子程序
第4章第一个程序
2019年10月8日8:29
寄存器cx 存放的是程序的长度
2..exe 加载的过程
3.DS 存放的是内存的段地址(也是PSP 起始段地址:SA ),CS 存放的是程序段地址(=SA+10)
4.当执行int 21h 这段dos 系统调用的时候,在debug 中需要用P ,命令
5.加载:command 加载debug 加载.exe
1)返回:.exe 返回debug 返回command
2)使用debug 的加载和返回的过程为:6.