文档详情

实验5-编写、调试具有多个段的程序.docx

发布:2019-07-31约2.3千字共4页下载文档
文本预览下载声明
PAGE 1 实验5 编写、调试具有多个段的程序 (1)将下面的程序编译连接,用Debug加载、跟踪,然后回答问题。 assume cs:code, ds:data, ss:stack data segment dw 0123H, 0456H, 0789H, 0abcH, 0defH, 0fedH, 0cbaH, 0987H data ends stack segment dw 0, 0, 0, 0, 0, 0, 0, 0 stack ends code segment start: mov ax, stack mov ss, ax mov sp, 16 mov ax, data mov ds, ax push ds:[0] push ds:[2] pop ds:[2] pop ds:[0] mov ax, 4c00h int 21h code ends end start CPU执行程序,程序返回前,data段中的数据为多少? CPU执行程序,程序返回前,cs= 、ss= 、ds= 。 设程序加载后,code段的段地址为X,则data段的段地址为 ,stack段的段地址为 。 (2)将下面的程序编译连接,用Debug加载、跟踪,然后回答问题。 assume cs:code, ds:data, ss:stack data segment dw 0123H, 0456H data ends stack segment dw 0, 0 stack ends code segment start: mov ax, stack mov ss, ax mov sp, 16 mov ax, data mov ds, ax push ds:[0] push ds:[2] pop ds:[2] pop ds:[0] mov ax, 4c00h int 21h code ends end start CPU执行程序,程序返回前,data段中的数据为多少? CPU执行程序,程序返回前,cs= 、ss= 、ds= 。 设程序加载后,code段的段地址为X,则data段的段地址为 ,stack段的段地址为 。 对于如下定义的段: name segment … name ends 如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为 。 (3)将下面的程序编译连接,用Debug加载、跟踪,然后回答问题。 assume cs:code, ds:data, ss:stack code segment start: mov ax, stack mov ss, ax mov sp, 16 mov ax, data mov ds, ax push ds:[0] push ds:[2] pop ds:[2] pop ds:[0] mov ax, 4c00h int 21h code ends data segment dw 0123H, 0456H data ends stack segment dw 0, 0 stack ends end start CPU执行程序,程序返回前,data段中的数据为多少? CPU执行程序,程序返回前,cs= 、ss= 、ds= 。 设程序加载后,code段的段地址为X,则data段的段地址为 ,stack段的段地址为 。 (4)如果将(1)、(2)、(3)题中的最后一条伪指令“end start”改为“end”(也就是说不指明程序的入口),则哪个程序仍然可以正确执行?请说明原因。 (5)程序如下,编写code段中的代码,将?a 段和b段中的数据依次相加,将结果存到c段中。 assume cs:code a segment db 1,2,3,4,5,6,7,8 a ends b segment db 1,2,3,4,5,6,7,8 b ends c segment db 0,0,0,0,0,0,0,0 c e
显示全部
相似文档