4.《汇编语言》-王爽第三版学习笔记 第一个程序

  1. 汇编程序从写出到执行的过程


    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 文件程序加载过程


95CCED25-E419-44DC-9F2A-5CBACAE372A3.png
  • 程序加载后,ds中存放着程序所在内存区的地址,这个内存区的偏移地址为0,则程序所在的内存区的地址为 ds:0
  • 这个内存区的前256个字符存放的是 PSP ,DOS用来和程序进行通信,从256字节后的空间存放的是程序。
    因为 PSP 占256(100H)字节,所以程序的物理地址是:
    SA * 16 + 0 + 256 = (SA + 16)* 16
    可用段地址和偏移地址表示为: SA + 10H :0
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容