汇编语言实验5.docx

上传人:b****5 文档编号:8171637 上传时间:2023-01-29 格式:DOCX 页数:10 大小:179.85KB
下载 相关 举报
汇编语言实验5.docx_第1页
第1页 / 共10页
汇编语言实验5.docx_第2页
第2页 / 共10页
汇编语言实验5.docx_第3页
第3页 / 共10页
汇编语言实验5.docx_第4页
第4页 / 共10页
汇编语言实验5.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

汇编语言实验5.docx

《汇编语言实验5.docx》由会员分享,可在线阅读,更多相关《汇编语言实验5.docx(10页珍藏版)》请在冰豆网上搜索。

汇编语言实验5.docx

汇编语言实验5

计算机科学系实验报告(首页)

一、实验目的:

掌握具有代码段、数据段、堆栈段等多个段程序的编写和调试

二、实验内容、程序清单及运行结果

1、编译连接下面程序,用debug加载、跟踪,回答问题。

assumecs:

code,ds:

data,ss:

stack

datasegment

dw0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

dataends

stacksegment

dw0,0,0,0,0,0,0,0

stackends

codesegment

start:

movax,stack

movss,ax

movsp,16

movax,data

movds,ax

pushds:

[0]

pushds:

[2]

popds:

[2]

popds:

[0]

movax,4c00h

int21h

codeends

endstart

(1)CPU执行程序,程序返回前,data段中的数据为多少?

执行程序后,data段中的数据不变,为原始数据。

(2)CPU执行程序,程序返回前,cs=0772H,ss=0771H,ds=0770H.

(3)程序加载后,code段地址设为X,则data段地址为(x-2),stack段的段地址为(X-1).

2、编译连接下面程序,用debug加载、跟踪,回答问题。

assumecs:

code,ds:

data,ss:

stack

datasegment

dw0123h,0456h

dataends

stacksegment

dw0,0

stackends

codesegment

start:

movax,stack

movss,ax

movsp,16

movax,data

movds,ax

pushds:

[0]

pushds:

[2]

popds:

[2]

popds:

[0]

movax,4c00h

int21h

codeends

endstart

(1)CPU执行程序,程序返回前,data段中的数据为多少?

执行程序后,data段有16个字节空间,前两个字数据不变,其余为0。

(2)CPU执行程序,程序返回前,cs=0772H,ss=07771H,ds=0771H。

(3)程序加载后,code段地址设为X,则data段地址为(x-2),stack段的段地址为(X-1)。

(4)对于如下定义的段:

namesegment

......

nameends

如果段中数据位N个字节,程序加载后,该段实际占据空间为[N/16]Byte。

3、编译连接下面程序,用debug加载、跟踪,回答问题。

assumecs:

code,ds:

data,ss:

stack

codesegment

start:

movax,stack

movss,ax

movsp,16

movax,data

movds,ax

pushds:

[0]

pushds:

[2]

popds:

[2]

popds:

[0]

movax,4c00h

int21h

codeends

datasegment

dw0123h,0456h

dataends

stacksegment

dw0,0

stackends

endstart

(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段

assumecs:

code

asegment

db1,2,3,4,5,6,7,8

aends

bsegment

db1,2,3,4,5,6,7,8

bends

csegment

db0,0,0,0,0,0,0,0

cends

codesegment

start:

movax,a

movds,ax

movax,b

movss,ax

movax,c

moves,ax

movbx,0

movcx,8

s:

moval,ds:

[bx]

addal,ss:

[bx]

moves:

[bx],al

incbx

loops

movax,4c00h

int21h

codeends

endstart

6、编写code段中代码,用push指令将a段中前8个字型数据逆序存储到b段中。

assumecs:

code

asegment

dw1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh

aends

bsegment

dw0,0,0,0,0,0,0,0

bends

codesegment

start:

movax,a

movds,ax

movax,b

movss,ax

movsp,10h

movbx,0

movcx,8

s:

pushds:

[bx]

addbx,2

loops

movax,4c00h

int21h

codeends

endstart

三、实验结论、实验体会

将程序中的数据、代码、栈放入不同的段,可以是编写的程序更加有逻辑性,他人容易看懂,也更好用地debug进行调试,跟踪程序的执行过程。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1