1、汇编语言实验5计算机科学系实验报告(首页)一、实验目的:掌握具有代码段、数据段、堆栈段等多个段程序的编写和调试二、实验内容、程序清单及运行结果1、编译连接下面程序,用debug加载、跟踪,回答问题。assume cs:code,ds:data,ss:stackdata segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdata endsstack segment dw 0,0,0,0,0,0,0,0stack endscode segmentstart: mov ax,stack mov ss,ax mov sp,16 mov
2、ax,data mov ds,ax push ds:0 push ds:2 pop ds:2 pop ds:0 mov ax,4c00h int 21hcode endsend 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:st
3、ackdata segment dw 0123h,0456hdata endsstack segment dw 0,0stack endscode segmentstart: 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 21hcode endsend start(1)CPU执行程序,程序返回前,data段中的数据为多少?执行程序后,data段有16个字节空间,前两个字数据不变,其余为0。(2)CPU执行程序,程序返回前,
4、cs=0772H,ss=07771H,ds=0771H。(3)程序加载后,code段地址设为X,则data段地址为(x-2),stack段的段地址为(X-1)。(4)对于如下定义的段:name segment .name ends如果段中数据位N个字节,程序加载后,该段实际占据空间为N/16Byte。3、编译连接下面程序,用debug加载、跟踪,回答问题。assume cs:code,ds:data,ss:stackcode segmentstart: mov ax,stack mov ss,ax mov sp,16 mov ax,data mov ds,ax push ds:0 push d
5、s:2 pop ds:2 pop ds:0 mov ax,4c00h int 21hcode endsdata segment dw 0123h,0456hdata endsstack segment dw 0,0stack endsend start(1)CPU执行程序,程序返回前,data段中的数据为多少?data段数据未变。(2)CPU执行程序,程序返回前,cs=0070H,ss=0074H,ds=0073H。(3)程序加载后,code段地址设为X,则data段地址为(x+3),stack段的段地址为(X+4)。5、编写code段中的代码,将a段和b段数据依次相加,结果存入c段assum
6、e cs:codea segment db 1,2,3,4,5,6,7,8a endsb segment db 1,2,3,4,5,6,7,8b endsc segment db 0,0,0,0,0,0,0,0c endscode segmentstart: mov ax,a mov ds,ax mov ax,b mov ss,ax mov ax,c mov es,ax mov bx,0 mov cx,8s: mov al,ds:bx add al,ss:bx mov es:bx,al inc bx loop s mov ax,4c00h int 21hcode endsend start6、
7、编写code段中代码,用push指令将a段中前8个字型数据逆序存储到b段中。assume cs:codea segment dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffha endsb segment dw 0,0,0,0,0,0,0,0b endscode segmentstart: mov ax,a mov ds,ax mov ax,b mov ss,ax mov sp,10h mov bx,0 mov cx,8s: push ds:bx add bx,2 loop s mov ax,4c00h int 21hcode endsend start三、实验结论、实验体会将程序中的数据、代码、栈放入不同的段,可以是编写的程序更加有逻辑性,他人容易看懂,也更好用地debug进行调试,跟踪程序的执行过程。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1