学习自王爽《汇编语言》
1. 准备知识点
1. Debug的命令
2. 汇编源代码代码
assume cs:code
code segment
mov ax,0123h
mov bx,0456h
add ax,bx
add ax,ax
mov ax,4c00h
int 21h
code ends
end
该程序的伪指令
1.segment与ends
是一对成对使用我的伪指令
定义一个段
segment 【英语:部分】 :段开始
ends:段结尾
2.assume和end
assume【英语:假设】:假设某一寄存器和程序中的某一个segment与ends定义的段相联系
end:结束队员程序的编译
该源程序其他内容
1.标号:比如code ,最终被编译,连接成为一个段地址,存放在cs中
2.程序的返回:
mov ax,4c00h
int 21h
2. 编译,连接,运行,调试
最终得到
1. 编写源程序
名字为:FirstCode
2. 编译
- 输入源程序的名称
注: 没有以 .asm为扩展名,输入全名 ; 没有在当前路径,输入路径 - 输入编译出的目标文件名称 (.OBJ)
注:不指定文件路径和名字,会在当前目录下生成obj文件相应名字 - 输入列表文件名称 (.LST)
注:不输入路径和名字,编译器不会生成这个文件 - 输入交叉引用文件名字 (.CRF)
注: 不输入路径和名字,编译器不会生成这个文件
3.连接
- 输入目标文件obj的名称
注: 没有以 .obj为扩展名,输入全名 ; 没有在当前路径,输入路径 - 输入生成可执行文件名称 (.EXE)
注:不指定文件路径和名字,会在当前目录下生成EXE文件相应名字 - 输入映像文件名称 (.MAP)
注:不输入路径和名字,编译器不会生成这个文件 - 输入库文件名字 (.LIB)
注: 库文件里包含一些可以调用的程序,如果调用某一库文件的子程序,需要连接的时候,将库连接在一起
连接的作用:
- 源程序太大,分成多个来编译,再来连接
- 调用某库的子程序,需要连接
- 编译后的目标文件obj有些内容还不能生成可执行文件EXE,所以即使只有一个文件,不需要调用其它的,也需要连接来将这些内容处理为可执行文件
快捷编译连接
即 工具(MASM / LINK) 文件
注:不是当前路径就要加路径
运行
关于调试
之后可以用t 来一步一步进行运行