-
汇编程序从写出到执行的过程
9E23019E-2637-4FED-B46F-1B24C2743B0E.png
- 源程序: t1.asm
assume cs:codesg
codesg segment
mov ax,2000H
mov ss,ax
mov sp,0
add sp,10
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00H
int 21H
codesg ends
end
-
编译
F692AEBB-E711-46AA-BDBC-20CF03F63D2B.png
-
连接
62323695-E862-4176-AAB2-C2C9628D5491.png
-
运行
0775C36E-99B8-451E-9299-653E89FE7DAA.png
2.EXE 文件程序加载过程
![](https://img.haomeiwen.com/i2973986/58c161c1c88dc78c.png)
- 程序加载后,ds中存放着程序所在内存区的地址,这个内存区的偏移地址为0,则程序所在的内存区的地址为 ds:0
- 这个内存区的前256个字符存放的是 PSP ,DOS用来和程序进行通信,从256字节后的空间存放的是程序。
因为 PSP 占256(100H)字节,所以程序的物理地址是:
SA * 16 + 0 + 256 = (SA + 16)* 16
可用段地址和偏移地址表示为: SA + 10H :0
网友评论