第一个可执行程序代码
assume cs:codesg ;假设某一段寄存器和某一个程序段相联系
codesg segment ;定义一个段
mov ax,0123H
mov bx,0456H
add ax,bx
add ax,ax
mov ax,4c00H
int 21H ;程序返回
codesg ends
end ;标识程序结束
搭建汇编编译、链接和运行环境
下载masm软件,http://www.downcc.com/soft/523960.html
将这些可执行文件放在前文debug.exe同目录,同时汇编程序保存为1.asm
dosbox下,顺序执行masm.exe和link.exe,得到可执行文件1.exe
执行分析
-
此时shell将1.exe加载进内存中,ds=075a,cs=076a。书中介绍加载进内存时,存在256字节的程序段前缀(PSP),用于dos和被加载程序通信;在这之后则是代码段
-
单步调试,可以看到执行过程的ax值变化
总结
这节最大的收获是知道汇编代码至可执行程序是如何生成的。尽管并不是在控制台或窗口显示字符,但是通过debug程序,还是可以看到程序的执行。
标签:汇编,exe,第一个,mov,codesg,ax,可执行程序 From: https://www.cnblogs.com/snowsteps/p/17311089.html