汇编语言第2版王爽著课后实验报告详解Word文件下载.docx

上传人:b****1 文档编号:13466470 上传时间:2022-10-10 格式:DOCX 页数:30 大小:1.05MB
下载 相关 举报
汇编语言第2版王爽著课后实验报告详解Word文件下载.docx_第1页
第1页 / 共30页
汇编语言第2版王爽著课后实验报告详解Word文件下载.docx_第2页
第2页 / 共30页
汇编语言第2版王爽著课后实验报告详解Word文件下载.docx_第3页
第3页 / 共30页
汇编语言第2版王爽著课后实验报告详解Word文件下载.docx_第4页
第4页 / 共30页
汇编语言第2版王爽著课后实验报告详解Word文件下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

汇编语言第2版王爽著课后实验报告详解Word文件下载.docx

《汇编语言第2版王爽著课后实验报告详解Word文件下载.docx》由会员分享,可在线阅读,更多相关《汇编语言第2版王爽著课后实验报告详解Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。

汇编语言第2版王爽著课后实验报告详解Word文件下载.docx

(按实验结果填空)

Movax,ffff

Movds,ax

Movax,2200

Movss,ax

Movsp,0100

Movax,[0];

ax=5BEA

Addax,[2];

ax=5CCA

Movbx,[4];

bx=30F0

Addbx,[6];

bx=6026

Pushax;

sp=00FE;

修改的内存单元的地址是2200:

00FE内容是5CCA

Pushbx;

sp=00FC;

00FC内容是6026

Popax;

ax=6026.

Popbx;

sp=0100;

bx=.5CCA

Push[4];

00FE内容是30F0

Push[6];

修改的内存单元的地址是2200:

00FC内容是2F36

实验截图如下:

实验2-2(分析问答实验)

答:

因为T命令是单步中断,我们在后面学习后知道,CPU执行中断时会保留现场,即将标志寄存器,CS,IP等入栈,而实验中栈的地址正好是要查询的内存地址,所以即便未对内存单元进行写入命令,但里面的值会因为CPU要保留现场自动被改了

实验3

(1)代码:

ASSUMECS:

CODES

CODESSEGMENT

START:

movax,2000h

movss,ax

movsp,0

addsp,10

popax

popbx

pushax

pushbx

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

(2)debug跟踪:

(3)用debug跟踪查看PSP中的内容:

可见PSP的头两个字节是CD20,与书上的一致

实验4-1代码如下:

movax,0

movds,ax

movbx,200h

movcx,64

s:

mov[bx],al

incal

incbx

loops

ENDSTART

实验4-1运行图如下:

实验4-2代码如下:

movax,200h

movbx,0

mov[bx],bx

运行结果同实验4-1的一样

实验4-3(补全代码)

movax,cs

movax,20h

moves,ax

movcx,16h

moval,[bx]

moves:

[bx],al

因为要将代码复制到0:

200处,则必须知道代码的地址,和代码的长度,代码的地址在cs和IP中,代码的长度可以编译后用U命令查看后确定,这个之前随便打一个数就可以,不影响代码的长度,因为那个数占的空间和真实的长度一样,所以用U命令后在改过来即可

实验4-3的运行图如下:

实验5-1代码如下:

DATASSEGMENT

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

DATASENDS

STACKSSEGMENT

dw0,0

STACKSENDS

CODES,DS:

DATAS,SS:

STACKS

MOVAX,stacks

MOVss,AX

movsp,16

movax,datas

pushds:

[0]

[2]

popds:

实验5-1运行图如下:

①CPU执行程序后,程序返回前,data段中的数据为多少?

不变如上图

②CPU执行程序后,程序返回前,CS=144Ch,SS=144Bh,DS=144Ah。

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

实验5-2代码如下:

ASSUMECS:

dw0123h,0456h

MOVsS,AX

实验5-2运行图如下:

④对于如下定义的段:

Namesegment

……

Nameends

如果段中的数据占N个字节,则程序加载后,该段实际占用空间为16N倍。

实验5-3代码如下:

dw0123h,0456h

实验5-3运行图如下:

②CPU执行程序后,程序返回前,CS=144Ch,SS=144Eh,DS=144Dh。

③设程序加载后,code段的段地址为X,则data段的段地址为X+3,stack段的段地址为X+4。

实验5-4:

如果将

(1),

(2),(3)题中的最后一条伪指令“endstart”改为“end”(也就是说,不指明程序的入口),则哪个程序任然可以正确执行?

程序都可以正确执行,因为去掉start后,由于没有的标志,系统会将从code段的起始位置当作程序代码的开始处,然后一直执行下去,而这三个程序在start前没有其他的内容,去掉start也就不影响期功能了

实验5-5代码如下:

CODESSEGMENT

aSEGMENT

db7,8

aENDS

bSEGMENT

db7,8

bENDS

CCSEGMENT

db0,0

CCENDS

MOVAX,a

MOVDS,AX

movsi,0

Movcx,8

addal,[0+si]

addal,[16+si]

Mov[32+si],al

incsi

loops

实验5-5运行图如下:

实验5-6代码如下:

dwah,0bh,0ch,0dh,0eh,0fh,0ffh

aends

movax,b

movcx,8

push[bx]

addbx,2

实验5-6运行图如下:

实验6代码如下:

stacksgSEGMENT

stacksgENDS

datasgSEGMENT

db'

1.display'

1.brows'

1.replace'

1.modifly'

datasgENDS

DATASg,SS:

STACKSg

MOVAX,DATASg

movax,stacksg

movcx,4

s0:

pushcx

movsi,3

moval,[bx+si]

andalb

mov[bx+si],al

addbx,16

popcx

loops0

实验6运行图如下:

实验7代码如下:

Db'

197

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

当前位置:首页 > 考试认证 > 从业资格考试

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

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