汇编作业二.docx
- 文档编号:6433423
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:18
- 大小:758.10KB
汇编作业二.docx
《汇编作业二.docx》由会员分享,可在线阅读,更多相关《汇编作业二.docx(18页珍藏版)》请在冰豆网上搜索。
汇编作业二
实验三编程、编译、链接、跟踪
(1)将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe。
1.assumecs:
codesg
2.
3.codesgsegment
4.movax,2000H
5.movss,ax
6.movsp,0
7.movsp,10
8.addsp,0
9.addsp,10
10.popax
11.popbx
12.pushax
13.pushbx
14.popax
15.popbx
16.movax,4c00H
17.int21H
18.
19.codesgends
20.end
(1)用Debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容。
(2)PSP的头两个字节是CD20,用Debug加载t1.exe,查看PSP的内容。
实验4:
[bx]和loop的使用
(1)编程、向内存0:
200~0:
23F依次传送数据0~63(3FH).
程序如下:
编译后如图:
(2)编程,向内存0:
200~0:
23F依次传送数据0~63(3FH),程序只能使用9条指令,9条指令中包括“movax,4c000h”和“int21h”。
程序如下:
编译后如图:
(3)下面的程序的功能是将“movax,4c000h”之前的指令复制到内存0:
200处,补全程序。
上机调试,跟踪运行结果。
程序如下:
1.assumecs:
codesg
2. codesement
3.movax,code
4.movdx,ax
5.movax,0020h
6. moves,ax
7.movbx,0
8.movcx,18h
9.
10.s:
moval,[bx]
11.moves:
[bx],al
12.incbx
13.loops
14.movax,4c00h
15.int21h
16.
17.codeends
18.end
19.
编译如下图:
提示:
(1)、复制的是什么?
从哪里到哪里?
答:
题目的要求是把代码段内的指令当作数据,复制到目的地址。
所以,源数据段ds和代码段cs相同,通过movax,code/movds,ax('/'符号是指两条指令的分隔)来设置源数据段。
(2)、复制的是什么?
有多少个字节?
你如何知道要复制的字节的数量?
答:
可以先假设要复制8位[1h~0ffh]数据(因为我们可以看出此程序的长度不可能大于0ffh个字节)的字节数(如:
10h),把程序补全,以便通过编译。
这时我们以准确的第一空所填内容code与假想的第二空内容10h将程序补充完整并将其编译、连接、运行,接着进行DEBUG,在DEBUG时我们可用R命令查看CX的值,这时我们可以看到CX的值为1C,由此我们可以算出该程序的长度[1Ch-5h]=17h,之所以减5是为了满足题目的要求(因为movax,4c00h/int21h
这两条指令的长度等于5)
实验五编写、调试具有多个段程序
(1)、将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题.
程序如下:
1.assumecs:
code,ds:
data,ss:
stack
2.datasegment
3.dw0123h,0456h,0789h,0abch,0defh,0fedh,ocbah,09987h,
4.dataends
5.stackends
6.
7.codesegment
8.
9.start:
movax,stack
10.movss,ax
11.movsp,16
12.movax,data
13.movds,ax
14.pushds:
[0]
15.pushds:
[2]
16.popds:
[2]
17.popds:
[0]
18.
19.movax,4c00h
20.int21h
21.codeends
22.endstart
1CPU执行程序,程序返回前,data段中的数据为多少?
解:
(0123H)不变
2CPU执行程序,程序返回前,cs=?
、ss=?
、ds=?
。
解:
cs=076CH、ss=076BH、ds=076AH.
3设程序加载后,code段的段地址为X,则data段的段地址为?
,stack段的段地址为?
。
解:
程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1。
编译后如图:
(2)、将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。
1.assumecs:
code,ds:
data,ss:
stack
2.
3. datasegment
4.de0123H,0456H
5.ataends
6.
7.stacksegment
8.dw0,0
9.codesegment
10.start:
movax,stack
11.movss,ax
12.movsp,16
13.movax,data
14.movds,ax
15.pushds:
[0]
16.pushds:
[2]
17.popds:
[2]
18.popds:
[0]
19.movax,4c00h
20.int21h
21.codeends
22.endstrat
1CPU执行程序,程序返回前,data段中的数据为多少?
答:
(0123H)不变
2CPU执行程序,程序返回前,cs=?
、ss=?
、ds=?
。
答:
CPU执行程序,程序返回前,cs=076CH、ss=076BH、ds=076AH.
3设程序加载后,code段的段地址为X,则data段的段地址为?
,stack段的段地址为?
。
答:
程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1。
4对于如下定义的段:
namesegment
……
nameends
如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为:
?
答:
(N/16+1)*16. (N/16为取整数部分)
编译如如下图:
(4)将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。
assumecs:
code,ds:
data,ss:
stack
datasegment
dw0123H,0456H
ataennds
stacksegment
dw0,0
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
编译如下:
①CPU执行程序,程序返回前,data段中的数据为多少?
解:
(0123H)不变
②CPU执行程序,程序返回前,cs=076CH、ss=076BH、ds=076AH.
③设程序加载后,code段的段地址为X,则data段的段地址为X+3,stack段的段地址为X+4。
(4)如果将
(1)、
(2)、(3)题中的最后一条伪指令“endstart”改为“end”(也就是说不指明程序的入口),则那个程序仍然可以正确执行?
请说明原因。
解:
(1)、
(2)不能正确执行(入口默认为data段的第一条指令),(3)能正确执行。
如果不指明程序的入口,编译器自动默认整个代码的第一条指令为程序的入口。
(5)程序如下,编写code段中的内容,将a段和b段中的数据依次相加,将结果存到c段中。
23.assumecs:
code
24.
25.asegment
26.db1,2,3,4,5,6,7,8
27.aends
28.bsegmnt
29.db1,2,3,4,5,6,7,8
30.ends
31.csegment
32.db0,0,0,0,0,0,0,0
33.cends
34.
35.Codesegment
36.Start:
movax,a
37.movds,ax
38.movds,ax
39.movbx,0
40.movcx,8
41.S:
moval,ds:
[bx]
42.addal,ds:
[bx+16]
43.movds:
[bx+32],al
44.incbx
45.loops
46.movax,4c00h
47.int21h
48.Codeends
49.Endstart
编译如下:
(6)程序如下,编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储到b段中。
1.assumecs:
code
2.
3.asegment
4.dw1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
5.a ends
6.bsegment
7.dw0,0,0,0,0,0,0,0
8.bends
9.codesegment
10.
11.Start:
movax,a
12.movds,ax
13.movbx,0
14.movax,b
15.movsp,16
16.movcx,8
17.s:
push[bx]
18.addbx,2
19.loops
20.movax,4c00h
21.int21h
22.codeends
23.endstart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 作业