标签:存储 开始 多少 alt 程序加载 mil 情况 http 执行
2、将下面的程序编译,链接,用debug加载,跟踪,然后回答问题。
该程序加载后,code段的段地址为X,则data段的段地址X-2,stack的段地址为X-1
3、将下面的程序编译,链接,用debug加载,跟踪,然后回答问题。
这段代码和上一段对比,就是把data段和stack段放到了最后,看下程序执行返回前(就是int 21h前),相关寄存器的情况:
这时,CS, SS, DS三个寄存器的位置关系发生了变化,和上面两种情况可以对比一下,分别从程序的角度和内存的角度体会栈段的使用、变化情况。
4、如果将最后一条伪指令“end start”改为“end”,相当于没有指明程序入口,此时程序就会从加载进内存的第一个单元起开始执行。在(1)(2)题中,都是数据先加载进内存,CPU会误把数据也当成指令执行,最终不能保证被正确执行;而(3)题则是代码段先被加载进内存,因而可以被正确执行。
5、程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。
6、程序如下,编写code段中的代码,用push指令将a段中的前8个字符型数据,逆序存储到b段中。
代码如下
结果为
标签:存储 开始 多少 alt 程序加载 mil 情况 http 执行
原文地址:https://www.cnblogs.com/DEMON98/p/10045770.html