汇编 --- > EXE文件 的程序的加载过程

本文通过1.asm的编译、连接及debug调试,详细介绍了EXE文件加载过程。在调试模式下,观察到ds=049d, cs=04ad,说明ds指向程序内存段,cs指示代码段,两者结合揭示了程序在内存中的布局。" 114943897,10538503,Java9模块系统与Maven结合:构建多模块服务示例,"['Java9', '模块化', 'Maven构建', '服务接口', 'ServiceLoader']
摘要由CSDN通过智能技术生成

1.asm

  • 使用编译工具写了一个求2的3次方的程序
assume cs:abc

abc segment
    mov ax,2
	add ax,ax
	add ax,ax
	
	mov ax, 4c00H
	int 21H
abc ends

end

编译&连接

  • 得到可执行文件1.exe

使用debug调试1.exe

  • 进入调试模式
debug 1.exe

在这里插入图片描述

  • 查看数据段地址和代码段地址
-r 

在这里插入图片描述

  • 描述:
    • 可以看到此时的ds = 049d
    • 此时的cs = 04ad
  • 使用 -u 049d:0 100 查看前256个字节
-u 049d:0 100

在这里插入图片描述

  • 注: 049D:0 ~ 04ad:0 存放的是DOS系统和我们所编写的程序(1.exe)用于交换信息的程序
  • 我们所写代码从CS开始
-u 04ad:0 

在这里插入图片描述

  • 总结:
    1.程序加载后,ds中存放程序所在内存的段地址,偏移量为0
    2.cs存放代码的段地址,偏移量为0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值