Notepad++ / UltraEdit + 汇编语言
MASM.EXE:编译产生目标文件
LINK.EXE:连接,产生可执行文件
连接作用:源程序分为多个子程序编译后,连接在一起。或程序调用其他库的子程序
可执行文件
1、程序:汇编语言的机器码
2、数据:源程序中定义的数据
3、相关描述信息
将程序和数据加载到内存中,并初始化
assume cs:codesg
codesg segment
start: mov ax,0123H
mov bx,0456H
add ax,bx
add ax,ax
mov ax,4c00h
int 21h
codesg ends
end
1、汇编指令:有对应机器码,被执行
2、伪指令:(除了汇编的部分)不被CPU执行,是由编译器执行的命令,编译器根据伪指令进行编译工作
3、段:段名 segment
和 段名 ends
是成对使用的伪指令。一个汇编程序是由多个段组成
4、段的作用:存代码、存数据、作栈空间
5、end
是汇编的结束标记(伪指令)
6、assume
:关联假设。假设某一段寄存器和程序中的某一个用segmert…ends定义的段相关联,编译程序可以将段寄存器和其一个具体的段相联系
7、标号:代替了一个地址
8、程序返回:DOS是单任务操作系统,程序执行结束后,将CPU的控制权还给DOS
;中断机制
mov ax,4c00h
int 21h
源文件:*.asm
编译:masm 1.asm
连接:link 1.obj
执行:1.exe
编译连接也可以用:
ml 1.exe
1、CMD运行
2、cmd将1.exe加载进内存
3、cmd把cpu的CS:IP指向1.exe入口
4、运行结束,把CS:IP指回cmd
操作系统提供一个Shell(外壳)程序,用户使用shell操作操作系统
DOS中有一个cmd.exe,是DOS中的命令解释器,也就是DOS的Shell
Debug将1.exe加载入内存,没置入口,但Debug利用中断指令,不放弃CPU的控制
debug 1.exe
t
:执行下一条代码
R
:查看寄存器地址
P
:执行int 21