微机原理答案.docx
- 文档编号:8971778
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:18
- 大小:21.29KB
微机原理答案.docx
《微机原理答案.docx》由会员分享,可在线阅读,更多相关《微机原理答案.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理答案
1.解:
自定义字数组如下
BLOCKDW?
?
?
?
?
?
?
?
?
?
(1)MOVBX,14
MOVAX,BLOCK[BX]
(2)MOVBX,OFFSETBLCOK
MOVAX,[BX+14]
(3)MOVBX,OFFSETBLCOK
MOVSI,14
MOVAX,[BX][SI]
2.解:
假设变量名为DAT,指针为0FF20H:
8020H
指针在内存中的存放如下图
DS:
SI
1A00H:
4000H
20H
DAT
1A00H:
4001H
FFH
1A00H:
4002H
20H
1A00H:
4003H
80H
MOVAX,1A00H
MOVDS,AX
MOVSI,4000H
MOVDX,[SI]
ADDSI,2
MOVDX,[SI]
3.解:
2字节指令JMPSHORTOBJ存储如下图。
CS:
0800H
JMPSHORTOBJ
CS:
0801H
所以当前的IP为0800H
JMPSHORTOBJ为段内直接短转移指令,IP←IP+D8,转移范围不能超过-128—+127
转向地址=位移量+IP
(1)OBJ=80H+0800H=0880H
(2)OBJ=0AH+0800H=080AH
(3)OBJ=6BH+0800H=086BH
4.解:
可以先写如下程序段
MOVAX,8000H
MOVBX,0F79H
PUSHAX
PUSHBX
POPCX
下图为执行完程序第四行处堆栈区示意图(栈顶地址为00FFH:
009FH)
SS:
SP
00FFH:
00A0H
00FFH:
009FH
80H
AX
00FFH:
009FH
00H
00FFH:
009FH
0FH
BX
00FFH:
009FH
79H
下图为执行完程序第五行处堆栈区示意图(栈顶地址为00FFH:
009FH)
SS:
SP
00FFH:
00A0H
00FFH:
009FH
80H
AX
00FFH:
009FH
00H
而CX=0F79H
5.解:
DATASEGMENT
DAT1DW2
XDD?
YDD?
ZDD?
WDD?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,WORDPTRZ
MULDAT1
MOVCX,DX
MOVBX,AX
MOVAX,WORDPTRZ+2
MULDAT1
ADDAX,BX
ADCDX,CX
ADDAX,WORDPTRY
ADCDX,WORDPTRY+2
ADDAX,WORDPTRX
ADCDX,WORDPTRX+2
MOVWORDPTRW,AX
MOVWORDPTRW+2,DX
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
6.解:
DATASEGMENT
DAT1DW2
XDW1/?
YDW1000H/?
ZDW1000H/?
VDW1000H/?
DATDW?
DAT2DW?
DAT3DW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,X
MOVBX,Y
IMULBX
MOVBX,AX
MOVCX,DX
MOVAX,V
CWD
SUBDX,CX
SBBAX,BX
MOVDAT,AX
MOVCX,DX
MOVAX,Z
MOVBX,2
IMULBX
ADDAX,DAT
ADCDX,CX
SUBAX,100H
SBBDX,0
IDIVX
MOVDAT2,AX;数据存放在变量中便于观测
MOVDAT3,DX
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
7.解:
DATASEGMENT
XDW?
YDW?
RESULTDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
CMPX,100
JAT0
JMPTI
T0:
MOVAX,X
SUBAX,Y
JMPQUIT
T1:
MOVAX,Y
SUBAX,X
QUIT:
MOVRESULTAX
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
8.解:
N=10,数据存放在变量中便于观测
DATASEGMENT
ARRAYDB0H,12H,0F5H,01H,06H,99H,12H,0F5H,00H,00H
ZERODB?
FSDW?
ZSDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,0
MOVDI,0
MOVSI,OFFSETARRAY
AGAIN:
MOVAL,[SI]
INCSI
CMPSI,10
JAQUIT
CMPAL,0
JET0;数据为0
TESTAL,80H
JET1;数据为正数
JMPT2;数据为负数
T0:
INCZERO
JMPAGAIN
T1:
INCBX
JMPAGAIN
T2:
INCDI
JMPAGAIN
QUIT:
MOVZS,BX
MOVFS,DI
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
9.解:
参看教材77页
10.解:
密码字可以理解为是相应字符的ASCII码
DATASEGMENT
BUFINDB20H,20HDUP(?
)
BUFFERDB10DUP(?
)
MIMAZIDB43H,47H,48H,46H,59H,44H,5AH,58H,56H,57H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUFIN
MOVAH,0AH
INT21H
LEADI,BUFFER
LEASI,BUFIN
ADDSI,2
MOVCL,10
AGAIN:
MOVAL,[SI]
ANDAL,0FH
MOVBX,OFFSETMIMAZI
XLAT
MOV[DI],AL
INCSI
INCDI
LOOPAGAIN
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
11.解:
假设DX寄存器低字节有数据
提示:
若DX寄存器中的高低字节都有数据,用同样的办法做
DATASEGMENT
CLRDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,00F5H
MOVAX,DX
MOVCH,16
DIVCH
MOVBL,AH
CMPAL,9
JACHULI
ADDAL,30H
JMPSHUCHU
CHULI:
ADDAL,37H
SHUCHU:
MOVDL,AL
MOVAH,2
INT21H
MOVAL,BL
CMPAL,9
JACHULI1
ADDAL,30H
JMPSHUCHU1
CHULI1:
ADDAL,37H
SHUCHU1:
MOVDL,AL
MOVAH,2
INT21H
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
12.解:
此答案作为参考
;.....将BUF中的10个数据中的0抹掉并更新长度.......;
;.....BUF中的第一个元素为缓冲区长度.......;
DATASEGMENT
BUFDB0AH,1,0,3,0,2,5,8,9,0,7
COUNTDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEASI,BUF
MOVBL,[SI]
XORBH,BH
MOVCOUNT,0
INCSI
AGAIN:
MOVAL,[SI]
CMPAL,0
JZCHULI
INCSI
CMPSI,10
JAQUIT
JMPAGAIN
CHULI:
INCCOUNT
PUSHSI
PUSHBX
SUBBX,SI
MOVCL,BL
L:
MOVAH,[SI+1]
MOV[SI],AH
INCSI
LOOPL
POPBX
POPSI
JMPAGAIN
QUIT:
SUBBL,COUNT
MOVSI,0
MOVBUF[SI],BL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
13.解:
参看实验指导书或教材
14.解:
思路为11题的逆过程
2456
DATASEGMENT
BUFINDB20H,20DUP(?
)
CLRDB0DH,0AH,'$'
DATDB?
?
?
?
CS1DW4096
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETBUFIN
MOVAH,0AH
INT21H
MOVDX,OFFSETCLR
MOVAH,9
INT21H
LEADI,DAT
LEASI,BUFIN
ADDSI,2
MOVCL,4
AGAIN:
MOVAL,[SI]
CMPAL,39H
JATT
SUBAL,30H
JMPT1
TT:
SUBAL,37H
T1:
MOV[DI],AL
INCDI
INCSI
LOOPAGAIN
MOVDX,0
MOVAH,0
MOVAL,[DI]
ADDDX,AX
DECDI
MOVAL,[DI]
MOVCL,16
MULCL
ADDDX,AX
MOVBX,DX
DECDI
MOVAH,0
MOVAL,[DI]
MOVCX,256
MULCX
ADDAX,BX
ADCDX,0
MOVBX,AX
MOVCX,DX
DECDI
MOVAH,0
MOVAL,[DI]
MULCS1
ADDAX,BX
ADCDX,CX
MOVBX,AX
MOVCL,16
XIANSHI:
SHLBX,1
JCNEXT
MOVDL,30H
JMPT0
NEXT:
MOVDL,31H
T0:
MOVAH,2
INT21H
LOOPXIANSHI
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
15.解:
dsegSEGMENT
numdw76,69,84,90,73,88,99,63,100,80
ndw10
s6dw?
s7dw?
s8dw?
s9dw?
s10dw?
dsegENDS
codesegment
mainprocfar
ASSUMECS:
CODE,DS:
dseg
START:
pushds
subax,ax
pushax
movax,dseg
movds,ax
callsub1
ret
mainendp
sub1procnear
pushax
pushbx
pushcx
pushsi
movsi,0
movcx,n
next:
movax,num[si]
movbx,10
divbl
movbl,al
cbw
subbx,6
salbx,1
incs6[bx]
addsi,2
loopnext
popsi
popcx
popbx
popax
ret
sub1endp
codeends
endstart
16.解:
要使用BIOS调用,暂时不解。
17.解:
输入数据如果为221210代表意思为2010-12-22,在DATE查看数据
DATASEGMENT
STR1DB'Whatisthedatetoday?
',0DH,0AH,'$'
BUFINDB20H,20DUP(?
)
DATEDB?
?
?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,STR1
MOVAH,9
INT21H
LEADX,BUFIN
MOVAH,0AH
INT21H
LEADI,DATE
MOVSI,OFFSETBUFIN
ADDSI,2
MOVCL,3
AGAIN:
MOVAL,[SI]
SUBAL,30H
SHLAL,1
SHLAL,1
SHLAL,1
SHLAL,1
INCSI
MOVAH,[SI]
SUBAH,30H
ADDAL,AH
MOV[DI],AL
INCDI
INCSI
LOOPAGAIN
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 答案