微机原理习题解答5Word文档格式.docx
- 文档编号:16640594
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:17
- 大小:50.09KB
微机原理习题解答5Word文档格式.docx
《微机原理习题解答5Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理习题解答5Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
用调试程(例如DEBUG.EXE)序对可执行文件进行调试,直到无错误为止。
此时的可执行文件在DOS命令下直接执行。
5.已知数据段DATA从存储器02000H单元开始,DATA段的定义如下:
DATASEGMENT
VAR1DB2DUP(0,1,?
)
VAR2DW50DUP(?
VAR3DB10DUP(0,1,2DUP(3),4)
DATAENDS
试求出三个变量经SEG、OFFSET、TYPE、LENGTH、SIZE运算的结果。
运算结果如下表所示:
回送符
变量
SEG
OFFSET
TYPE
LENGTH
SIZE
VAR1
0200H
0000H
1H
2H
VAR2
0006H
32H
64H
VAR3
006AH
0AH
6.已知数据段定义如下,试采用图示说明各变量在内存的分配情况以及数据的预置情况。
A1DB50,100,2DUP(0,1)
A2DB2DUP(2,3DUP(?
),10H)
A3DB‘happynewyear!
’
A4DW0,2000H
A5DW?
,‘AB’
7.试采用图示说明各变量在内存的分配情况以及数据的预置情况。
ORG0100H
B1DB?
B2DW100
B3DW2DUP(0)
COUNTEQU5
B4DBCOUNTDUP(0,1)
B5DW‘12’,‘34’,‘56’
内存的分配情况以及数据的预置情况见右图
8.已知变量VAR1、VAR2、VAR3定义如下,试分析下面的指令是否正确,若有错误,请进行改正。
VAR1DB?
VAR2DB10
VAR3EQU100
(1)MOVVAR1,AX
(2)MOVVAR3,AX
(3)MOVBX,VAR1
MOV[BX],10
(4)CMPVAR1,VAR2
(5)VAR3EQU50
(1)类型不匹配,该为:
MOVVAR1,AL
(2)立即数不能作为目的操作数,该为:
MOVAX,VAR3
(3)第一句类型不匹配,改为:
MOVBL,VAR1
第二句未指明存储器操作数的类型,改为:
MOVBYTEPTR[BX],10
(4)两个存储器操作数之间不能直接作比较,改为:
MOVAL,VAR1
CMPAL,VAR2
(5)符号VAR3已被定义,不能重复定义,应去掉。
9.假设VAR1和VAR2为字变量,LAB为标号,试指出下面指令的错误之处,并加以改正。
(1)ADDVAR1,VAR2
两存储器操作数之间不能直接相加,改为:
MOVAX,VAR1
ADDAX,VAR2
(2)SUBAL,VAR2
两操作数类型不匹配,改为:
SUBAX,VAR2
(3)MOVCL,VAR1
MOVCX,VAR1
(4)JMPLAB[SI]
相对寄存器寻址,相对位移量不能为标号,因为数据值。
改为:
JMP5[SI]
(5)JNZVAR1
条件转移指令转移的目标地址,只能是标号或8位位移量。
JNZLAB
10.试说明下面指令中哪些需要进行PTR说明。
VAR1DB10H,100
VAR2DW1000
(1)MOVAL,VAR1
(2)MOVDH,[BX]
(3)ADD[BX],2
(4)MOVCL,VAR2
(5)SUBAL,VAR1+1
(3)、(4)条指令需要进行PTR说明
11.选择题
(1)在顺序结构的流程图中,不包含有(C)。
A)起始框B)终止框C)判断框D)处理框
(2)设AL=0A8H,CX=2,CF=1,执行RCLAL,CL指令后,AL=(无正确选项)。
A)51HB)46HC)47HD)0C5H
注:
正确的结果为:
AL=0A3H
(3)下述指令的执行结果是(C)
MOVAL,0FFH
XORAL,3FH
A)AL=40HB)AL=20HC)AL=0C0HD)AL=0E0H
12.在AX和DX中存有一个32位带符号数(DX中存放高16位),试编写程序求出它的相反数。
程序设计如下:
CODESEGMENT
ASSUMECS:
CODE
START:
MOVCX,0
CLC
SBBCX,AX
MOVAX,CX
SBBCX,DX
MOVDX,CX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
13.编程实现求S=(X2+Y2)/Z的值,并将结果放入RESULT单元。
(设:
X、Y、Z均为字节数,且Z为无符号数)
答:
XDB20H
YDB35H
ZDB12H
RESULTDW?
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MOVAX,DATA
MOVDS,AX
MOVAL,X
MULAL
MOVDX,AX
MOVAL,Y
ADDAX,DX
MOVDX,0
MOVBL,Z
MOVBX,0
DIVBX
MOVRESULT,AX
MOVAH,4CH
INT21H
CODEENDS
14.试编程实现将键盘输入的小写字母用大写字母显示出来。
CLRFMACRO;
宏汇编命令,定义宏
MOVDL,0DH
MOVAH,02H
INT21H;
回车,使光标回到起始位置
MOVDL,0AH
光标换行
ENDM;
宏定义结束
DATASEGMENT
STRINGDB50,?
,50DUP(?
DATAENDS
START:
LEADX,STRING
MOVAH,0AH
CLRF;
宏指令
MOVBL,STRING+1
MOVBH,0
LEASI,STRING+2
ADDBX,SI
MOVBYTEPTR[BX],‘$’
NEXT:
MOVDL,[SI]
CMPDL,‘a’
JBNEXT1
CMPDL,‘z’
JANEXT1
SUBDL,20H
MOV[SI],DL
NEXT1:
INCSI
DECBL
JNZNEXT
LEADX,STRING+2
MOVAH,09H
15.若在数组字变量SQTAB平方表中有十进制数0~100的平方值,用查表法找出35这个数的平方值放入字变量NUM中,写出程序段和有关的伪指令。
程序设计如下
SQTABDW0,1,4,9,16,25,36,……10000
TABDB35
NUMDW?
MOVBX,OFFSETSQTAB
MOVAL,TAB
SALAL,1
MOVAH,0
ADDBX,AX
MOVAX,WORDPTR[BX]
MOVNUM,AX
ENDSTART
16.试指出下列无条件转移指令的转移地址中的转移地址?
(1)JMPBX
转移地址为BX寄存器中的值。
属段内间接转移,IP←BX
(2)JMPWORDPTR[BX]
转移地址为BX中的值指明的存储器字单元中的值。
属段内间接转移,IP←(MEM)
(3)JMPNEARPTRFOR
转移地址为当前IP+16位位移量。
标号FOR表示16位位移量,属段内近转移。
(4)JMPFARPTRFAR_PRO
转移地址为标号FAR_PRO表示的16位段基址和16位偏移量。
属段间直接转移。
(5)JMPSHORTAGAIN
转移地址为当前IP+8位位移量。
标号AGAIN表示8位位移量,属段内短转移。
(6)JMPDWORDPTR[BX][DI]
转移地址为由基址变址寻址方式提供的存储器操作数(两个字)
17.试分析下列程序段,如果AX和BX的内容分别给出如下5种情况,试问程序分别转向何处?
(1)AX=1478H,BX=80DCH
(2)AX=0B568H,BX=54B5H
(3)AX=42C8H,BX=608DH
(4)AX=0D023H,BX=9FD0H
(5)AX=94B7H,BX=0B568H
ADDAX,BX
JNOL1
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPL5
(1)转向L1
(2)转向L1
(3)转向L2
(4)转向L5
(5)转向L5
18.编写程序,计算下面函数的值。
2X(X<0)
S=3X(0≤X≤10)
4X(X>10)
XDB-17
SDB?
CMPAL,0
JGELOOP1
ADDAL,AL
MOVS,AL
LOOP1:
CMPAL,0AH
JGLOOP2
MUL3
LOOP2:
MUL4
MOVWORDPTRS,AX
CODEENDS
19.设内存中有三个互不相等的无符号字数据X、Y和Z,存放在X开始的字单元中,编程实现将三个数据从小到大排序后放到X、Y和Z中。
XDW25H,27H,18H
YDW?
ZDW?
ASSUMECS:
MOVAX,X
CMPAX,X+2
JBELOOP1
XCHGAX,X+2
LOOP1:
CMPAX,X+4
JBELOOP2
XCHGAX,X+4
LOOP2:
MOVX,AX
MOVAX,X+2
JBELOOP3
MOVZ,AX
MOVAX,X+4
MOVY,AX
JMPLOOP4
LOOP3:
LOOP4:
20.分析下面程序功能,并指出程序执行后,DAT2数据区中的内容是什么?
DAT1DB0,1,2,3,4,5,6,7,8,9
DAT2DB5DUP(?
︰
MOVCX,5
MOVBX,5
MOVSI,0
MOVDI,0
MOVAL,DAT1[BX+SI]
MOVDAT2[DI],AL
INCSI
INCDI
LOOPNEXT
HLT
DAT2数据区中的内容为:
5,6,7,8,9
21.编写程序求出首地址为DAT的100个有符号字数据中的最小偶数,并将这个数存放到DAT1字单元中。
程序设计如下(提示:
偶数的最末为是零)
DATDB02H,0A8H,34H,23H,23H,34H,26H,0A2H……
NUMEQU64H
DAT1DB?
LEASI,DAT
MOVCX,NUM
MOVAL,0
SHRDL,1
JNCNN
DECCX
JMPMM
NN:
MOVAL,[SI]
NN1:
JZMM
MOVBL,[SI]
SHRBL,1
JCNN1
CMPAL,BL
JLENN1
MOVAL,BL
JMPNN1
MM:
MOVDATI,AL
22.试编写一个程序段,要求比较两个字符串STR1和STR2是否完全相等。
若完全相等,则置AL=1;
若不完全相等,则置AL=-1。
STR1DB‘FDASFDFDSA’,‘$’
NUM1EQU$-STR1
STR2DB‘FDASFDFDSA’,‘$’
NUM2EQU$-STR2
DATA,ES:
MOVES,AX
MOVAX,NUM1
MOVBX,NUM2
CMPAX,BX
JNELOOP1
MOVCX,NUM1
LEASI,STR1
LEADI,STR2
CLD
REPECMPSB
JCXZLOOP2
JMPEXIT
MOVAL,01H
EXIT:
23.按子程序说明信息编写子程序
;
子程序名:
STRINGS_CMP
子程序功能:
比较两个长度相同的字符串STR1和STR2
入口参数:
STR1、STR2的首地址分别放在SI和DI中,长度在CX中
出口参数:
STR1>
STR2时,CF=0;
STR1<
STR2时,CF=1;
STR1=STR2时,ZF=1
受影响的寄存器:
标志寄存器
字符串STR1和STR2为数值型字符串,均为带符号数,约定高字节在前,低字节在后
比较时从高字节到低字节逐字节比较
STRINGS_CMPPROCNEAR
PUSHF;
保护现场
MOVAL,BYTEPTR[SI]
CMPAL,BYTEPTR[DI]
JGELOOP1
STC
CMPAL,BYTEPTR[DI]
JELOOP2
INCDI
DECCX
XORAL,AL
RET
STRINGS_CMPENDP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 习题 解答