汇编语言王爽检测点答案.docx
《汇编语言王爽检测点答案.docx》由会员分享,可在线阅读,更多相关《汇编语言王爽检测点答案.docx(42页珍藏版)》请在冰豆网上搜索。
汇编语言王爽检测点答案
汇编语言王爽.检测点答案
第一章.检测点1.1
(1)13
(2)1024,0,1023
(3)8192,1024
(4)2^30,2^20,2^10
(5)64,1,16,4
(6)1,1,2,2,4
(7)512,256
(8)二进制
注:
符号'^'指求幂运算(如:
2^30指2的30次方)
第二章
检测点2.1
(1)大家做这题的时候一定要注意,要看清楚数制,比如是二进制还是十进制,还是十六进,我当时没注意,做错了!
!
呵呵!
!
第一空:
F4A3H
第二空:
31A3H
第三空:
3123H
第四空:
6246H
第五空:
826CH
第六空:
6246H
第七空:
826CH
第八空:
04D8H
第九空:
0482H
第十空:
6C82H
第十一空:
D882H
第十二空:
D888H
第十三空:
D810H
第十四空:
6246H
(2)
movax,2
addax,ax
addax,ax
addax,ax
检测点2.2
(1)00010H1000fH
(2)0001H2000H
检测点2.3
共修改了4次ip第一次movax,bx第二次是subax,ax第三次是jmpax第四次是执行jmpax最后ip的值是0因为ax的值是零!
!
检测点3.1
(1)
第一空:
2662H
第二空:
E626H
第三空:
E626H
第四空:
2662H
第五空:
D6E6H
第六空:
FD48H
第七空:
2C14H
第八空:
0000H
第九空:
00E6H
第十空:
0000H
第十一空:
0026H
第十二空:
000CH
注意:
ax中存取的是字型数据,高地址存放高字节,低地址存放低字节!
!
(一定要小心)
(2)
①写出cpu的执行序列
Movax,6622
Jmp0ff0:
0100
Movax,2000H
Movds,ax
Movax,[0008]
Movax,[0002]
②
指令执行顺序
寄存器
CS
IP
DS
AX
BX
初值
2000H
0000
1000H
0
0
movax,6622h
2000H
0003
1000H
6622H
0000
jmp0ff0:
0100
1000h
0000
1000H
6622H
0000
movax,2000h
1000H
0003
1000H
2000H
0000
movds,ax
1000H
0005
2000H
2000H
0000
movax,[0008]
1000H
0008
2000H
C389H
0000
movax,[0002]
1000H
000B
2000H
EA66H
0000
③数据和程序在计算机中都是以二进制的形式存放的,在区别程序和数据时,关键是看段地址,如果段地址是ds段,说明该内存中存放的是数据,如果段地址是cs段,说明该内存中存放的是程序指令
检测点3.2
(1)
Movax,2000H
Movss,ax
Movsp,0010H
(2)
Movax,1000H
Movss,ax
Movsp,0000H
注意:
出栈时和入栈时的顺序,空栈时栈顶指向的是最高端地址!
栈满是栈顶指针指向的是最底端地址!
!
2。
实验任务
(1)
5BEA
5CCA
30F0
6023
00FE2200:
01005CCA
00FC2200:
00FE6023
00FE6023
01005CCA
00FE2200:
010030F0
00FC22000:
00FC2E39
(2)
因为在DEBUG中T命令在执行修改寄存器ss的指令时,会产生中断,将现场保护起来,下一条指令也紧接着被执行!
!
实验三:
该实验自己做吧我做出来的东西只是我pc上的数据,可能在别的pc做出来的结果会不一样,在加之数据太多,我做了两次数据都没有完整的记下来,只好作罢!
!
实验四:
[bx]和loop的使用
(1)
assumecs:
code
codesegment
movax,0
movds,ax
movcx,64
movbx,200h
s:
movds:
[bx],ax
incbx
incax
loops
movax,4c00H
int21h
codeends
End
(2)如上题我一不小心写出来就是九条指令了!
!
!
呵呵!
!
(3)具体做法是将那段指令写道内存中,察看其在内存中的起始地址和终止地址,然后将该内存的内容复制到0:
200处就可以了!
!
检测点6.1
(1)
Movcs:
[dx],ax
(2)
第一空:
cs
第二空:
26或者1ah
第三空:
popcs:
[dx]
发表于@2008年08月19日 01:
11:
00|评论
(2)|编辑|举报|收藏
旧一篇:
常用命令(转)|新一篇:
实验五:
编写、调试具有多个段的程序
Copyright©maokaijiang
PoweredbyCSDNBlog
十一川藏疯狂之旅
本文来自CSDN博客,转载请标明出处:
王爽汇编语言答案(本答案是自己做的所有题目已在deubg中调试;但难免有差错,发现的提醒我email:
maokaijiang1211@谢谢)
(1)
①1931(一直保持不变,由于pc不同答案有可能不一样)
②cs=1943ss=1941ds=1931(由于pc不同,所以答案也可能不同,这只是机子上的数据)
③第一空:
X—2
第二空:
X—1
(2)
1.一直不变
2.答案不一样,就不写了
3.X-2,X-1
4.(N/16+1)*16
(3)
1.一直不变
2.答案不一样
3.X+3,X+4
(4)
答:
可能执行,如果不指明标号,cpu顺序执行指令,所有可能正确执行!
!
!
!
(5)
;******************************************
;将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
dsegment
db8dup(0)
dends
;*********************************
;代码段
;*********************************
codesegment
start:
movax,d
moves,ax
movax,a
movds,ax
movcx,8
movax,0
movbx,0
again1:
movdx,ds:
[bx]
moves:
[ax],dx
incbx
incax
loopagain1
movax,b
movds,ax
movax,0
movbx,0
movcx,8
movdx,0
again2:
adddx,ds:
[bx]
moves:
[ax],dx
incax
incbx
loopagain2
movax,4c00h
int21h
codeends
endstart
(6)
;*****************************************************
;编写程序,用push指令将a段中的word数据,逆序存储到b段中
;******************************************************
assumecs:
code
asegment
dw1,2,3,4,5,6,7,8
aends
bsegment
dw0,0,0,0,0,0,0,0
bends
codesegment
start:
movax,b
movss,ax
movsp,10h
movax,a
movds,ax
movbx,0
movcx,8
s:
push[bx]
addbx,2
loops
movax,4c00h
int21h
codeends
endstart
本文来自CSDN博客,转载请标明出处:
ht
(1)
本题略!
!
!
(2)
;*****************************************************
;编程,将datasg段中的每个单词的前四个字母改写为大写字母
;******************************************************
assumecs:
codesg,ss:
stacksg,ds:
datasg
stacksgsegment
dw0,0,0,0,0,0,0,0
stacksgends
datasgsegment
db'1.displsy'
db'2.brows'
db'3.replace'
db'4.modify'
datasgsegment
codesgsegment
start:
movax,stacksg
movss,ax
movsp,16
movax,datasg
movds,ax
movdx,0
movcx,4
s0:
pushcx
movsi,0
movcx,4
s1:
moval,[bx+si+4]
addal,11011111B
mov[bx+si+4],al
incsi
loops1
adddx,16
popcx
loops0
movax,4c00h
int21h
codesgends
endstart
本文来自CSDN博客,转载请标明出处:
assumecs:
codesg,ds:
data,es:
table
datasegment
db'1975','1976','1977','1978','1979','1980','1981','1982','1983'
db'1984','1985','1986','1987','1988','1989','1990','1991','1992'
db'1993','1994','1995'
;以上是表示21年的21个字符串
dd16,22,382