王爽《汇编语言》第6章 包含多个段的程序

    理解在汇编中为数据分配空间的方式:
    我们可以在程序中,定义我们希望处理的数据,这些数据就会被编译、连接程序作为程序的一部分写到可执行文件中,当可执行文件中的程序被加载入内存时,这些数据同时被加载入内存。与此同时我们要处理的数据也就自然而然的获得了存储空间。
    使用g命令执行运行到某个地址的功能。
    在伪指令end后面加上标号表示程序入口点。这个入口点在PE文件里体现在可选头文件的标准域中的AddressOfEntryPoint字段。没学过PE文件结构的同学可以略过,但早晚你也需要学习PE文件结构的。
    理解可执行程序的执行过程(不是加载过程):由其他程序将可执行文件中的程序加载入内存;设置CS:IP指向程序第一条要执行的指令,从而使程序运行;程序运行结束后,返回到加载者。这里没有考虑多线程的复杂性。
    代码中使用栈:这章使用了先用数据占据空间再利用这个空间做栈的方式。
    将数据、代码、栈放入不同的段:为方便编程而做的必要的代码管理。对段地址的引用就是直接使用段名,段名在程序加载的时候就变也了这个段开始的地址,所以是不能直接赋给段寄存器的,必需经过通用寄存器来转存过去。段名没有具体的程序意义,由我们根据方便性给出。
    疑问:assume cs:code,ds:data,ss:stack既然没有使cs指向code,ds指向data,ss指向stack的功能,在这里又作何用?课本没有给出解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值