计算机科学系实验报告(首页) 一、实验目的:掌握具有代码段、数据段、堆栈段等多个段程序的编写和调试
二、实验内容、程序清单及运行结果
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
(1)CPU执行程序,程序返回前,data段中的数据为多少?
执行程序后,data段中的数据不变,为原始数据。 (2)CPU执行程序,程序返回前,cs=0772H,ss=0771H,ds=0770H.
(3)程序加载后,code段地址设为X,则data段地址为(x-2),stack段的段地址为(X-1).
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
(1)CPU执行程序,程序返回前,data段中的数据为多少?