微计算机原理第2版第四章课后习题答案潘名莲 马争 丁庆生 编著Word下载.docx
- 文档编号:917176
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:29
- 大小:23.84KB
微计算机原理第2版第四章课后习题答案潘名莲 马争 丁庆生 编著Word下载.docx
《微计算机原理第2版第四章课后习题答案潘名莲 马争 丁庆生 编著Word下载.docx》由会员分享,可在线阅读,更多相关《微计算机原理第2版第四章课后习题答案潘名莲 马争 丁庆生 编著Word下载.docx(29页珍藏版)》请在冰点文库上搜索。
4-4(略)
4-5以下语句汇编后,变量CON1,CON2和CON3的内容分别是多少?
N1=10
……
CON1
00
CON2
FF
CON3
N2=5
N3=3
CON1DB(N1ANDN2ORN3)GE0FH
CON2DW(N2ANDN1XORN3)LE0FH
CON3DB(N1MODN3)LT(N2SHR1)
如图所示
4-6设有一个已定义的数据段如下:
DATASEGMENT
VAR1DB?
?
VAR2DB?
ADRDWVAR1,VAR2
DATAENDS
若要使ADR+2的字单元中存放内容为“0022H”,上述空白处应填入什么语句?
ORG0020H
4-7下述程序段执行后,寄存器CX,SI的内容是多少?
ARRYDW20DUP(5)
…
XORAX,AX
MOVCX,LENGTHARRY
MOVSI,SIZEARRY-TYPE
(CX)=14H(SI)=26H
4-8试定义一个结构,它应包括一个学生的下列信息:
姓名、学号、及3门课程的成绩。
然后给出3条机构预置语句,将3个学生的情况送入3个结构变量中。
STUDSTRUC;
定义一个结构,结构名为STUD
NAME1DB‘’;
姓名字段
NUMDB?
;
学号字段
SCORDB3DUP(?
);
三门课程成绩字段
STUDENDS
DATASEGMENT;
在数据段中通过三个结构变量引用,并赋值
STUD1STUD<
’ZHUMEING’,3,88,79,91>
结构变量名STUD1
STUD2STUD<
’ZHANGXING’,15,78,83,77>
结构变量名STUD2
STUD3STUD<
’WANGYAN’,12,91,92,93>
结构变量名STUD3
4-9试定义一条宏指令,它可以实现任一数据块的传送(假设无地址重叠),其源地址、目的地址和块长度作为参数处理。
根据要求,子程序的入口参数有:
源数据区和目的数据区的首址以及数据块的大小(包含的字节数)。
假设参数传递采用固定内存单元传递方式。
SADR——源数据区首地址;
DADR——目的数据区首地址;
SLENG——数据块长度。
程序如下:
SMOVEMACROSADR,DADR,SLENG
ASSUMECS;
CODE
LDSSI,SADR
LESDI,DADR
MOVCX,SLENG
CLD
CMPSI,DI
JAMOVE
STD
ADDSI,CX
DECSI
ADDDI,CX
DECDI
MOVE:
MOVSB
LOOPMOVE
RET
ENDM
4-10设VAR1和VAR2为字变量,LAB为标号,试判断下列指令的正误,并改正:
(1)ADDVAR1VA2
(2)JNZVAR1(3)SUBAL,VAR1
(4)JMPNEARLAB(5)JMPLAB[SI](6)MOVAL,VAR2
(1)错,ADD的两个操作数不能同时为存储单元。
改:
MOVAX,VAR1
ADDAX,VAR2
(2)错,JCC后面应该是标号,不应该是变量
JNZLAB
(3)错,两个操作数不匹配
SUBAX,VAR1
(4)错,缺少PTR运算符
JMPNEARPTRLAB
(5)错,LAB与[SI]不能相加
改:
JMPFARPTRLAB或者JMPWORDPTR[SI]
(6)错,操作数类型不匹配
MOVAX,VAR2
4-11已知数据定义如下,问L1和L298等于多少?
B1DB1,2,3,‘123’
B2DB0
L1EQU$—B1
L2EQUB2—B1
L1=$—B1=7—0=7,L2=B2—B1=6—0=6
4-12对于下列数据定义,指出以下指令的错误。
A1DB?
A2DB10
K1EQU1024
(1)MOVK1,AX
(2)MOVA1,AX
(3)MOVBX,A1
MOV[BX],1000
(4)CMPA1,A2
(5)K1EQU2048
(1)K1为名称,表示一立即数,不能做为目的操作数。
(2)A1为字节型,类型不匹配
(3)类型不匹配
(4)源和目的操作数不能同为存储器操作数
(5)对已经被EQU定义的K1,在本程序段不能二次定义
4-13试编程计算Z=5X+3Y+10.已知X,Y均放在数据段,其值由编程者自定。
结果Z仍放在数据段。
XDB10
YDB5
ZDW?
STACKSEGMENTPARASTACK‘STACK’
DW20HDUP(0)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
MAINPROCFAR
PUSHDS
MOVAX,0
PUSHAX
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
MOVBL,Y
MULBL;
X*5
MOVDX,AX;
转存至DX
MOVAL,Y
MOVBL,3
Y*3,积在AX中
ADDAL,0AH
ADDAX,DX
MOVZ,AX;
结果仍放数据段
MAINENDP
CODEENDS
ENDSTART
4-14(略)
4-15用查表法将存放于数据段中一个有序的十六进制数串(范围:
0~FH)翻译成
ASSII码表仍放于数据段中.
解:
TABDB30H,31H,32H,…,36H,37H
DB38H,39H,41H,…,45H,46H
HEXDB6
ASCDB?
STACK1SEGMENTPARA‘ATACK’
STACK1ENDS
CODESEGMENT
STACK1
BEGIN:
MOVBX,OFFSETTAB;
设置ASCII码表的基地址在BX中
MOVAL,HEX;
要查找的一位十六进制数在AL中
ADDBX,AX;
基址+偏移置即可计算出该十六进制数ASCII码存放地址
MOVAL,[BX];
该地址单元的内容即为要查找的ASCII码
MOVASC,AL;
存放ASCII码至ASC字节单元
MOVAH,4CH
INT21H
ENDBEGIN
4-16试编写一程序,把X和Y中的大者存入BIG单元。
若X=Y,则把其中之一存入BIG单元。
XDW1028
YDW1446
BIGDW?
CODE,DS:
DATA
MOVAX,X;
取字数据X至AX
MOVBX,Y;
取字数据Y至BX
CMPAX,BX;
比较(AX)和(BX)
JGESTORE;
若(AX)≧(BX),则转STORE处执行
XCHGAX,BX;
若(AX)<
(BX),则(AX)
(BX)
STORE:
MOVBIG,AX;
存结果至BIG字单元
4-17试编制一程序,比较STRING1和STRING2所含字符是否完全相同,若相同显示“MATCH”,反之,则显示“NOMATCH”。
试编写该程序。
STR1DB‘COMPUT’
STR2DB‘CONPUT’
MYESDB‘MATCH’,0DH,0AH,‘$’
MOVCX,6
MOVSI,OFFSETSTR1;
设置字符串STR1的地址指针SI
MOVDI,OFFSETSTR2;
设置字符串STR2的地址指针DI
REPECMPSB;
字符串一致时,重复比较,在两字串中找不相同字符
JNENO_SAME;
若有不相同字符,则转至NO_SAME处执行,否则顺序执行
SAME:
MOVDX,OFFSETMYES
MOVAH,09H;
显示字符串“MATCH”
JMPEND0
NO_SAME:
MOVDX,OFFSETMNO
显示字符串“NOMATCH”
END0:
4-18设数据段中有3个变量单元A、B和C中存放有3个数,若3个数都不为0,则求出此3个数之和存入SUM单元;
若有一个数为0,则将其他两个单元也清零。
试编写此程序。
ADB5
BDB4
CDB3
SUMDW?
CMPA,0
JEOK1
CMPB,0
CMPC,0
JNEOK2
OK1:
MOVA,0
MOVB,0
MOVC,0
JMPOK3
OK2:
MOVAH,0
MOVAL,A
ADDAL,B
ADDAL,C
MOVSUM,AX
OK3:
4-19假设已编制好5个乐曲程序,它们的入口地址(含段首址和偏移地址)存放在数据段中的跳跃表MUSICTAB中。
试编写一个管理程序,其功能是:
根据键盘输入的乐曲编号00~04转到所点乐曲的入口,执行此乐曲程序。
MUTABDWMUSICO,MUSCI1,…,MUSIC4
DW20HDUP(?
LEABX,MUTAB
NEXT:
MOVAH,1
CMPAL,30H
JBNEXT
CMPAL,34H
JANEXT
SUBAL,30H
SHLAX,1
ADDBX,AX
JMPWORDPTR[BX]
︰
﹕
MUSIC0:
MUSIC1:
MUSIC4:
4-20试编写一个能循环显示十条新闻标题的控制程序,每条新闻的标题为NEW1、NEW2、…、NEW10,及其入口地址转换表NEWTAB放在数据区中。
NEW1DB‘NEWS0’,0DH,0AH,‘$’
NEW2DB‘NEWS1’,0DH,0AH,‘$’
NEW3DB‘NEWS2’,0DH,0AH,‘$’
﹕
NEW10DB‘NEWS9’,0DH,0AH,‘$’
NEWTABDWNEW1,NEW2,NEW3,…,NEW10
PUAHDS
SUBAX,AX
MOVCX,10
LEABX,NEWTAB
DISP:
MOVDX,[BX]
ADDBX,2
MOVAH,09
LOOPDISP
4-21在数据段中存放有一字符串(≦80个字符),以回车符CR结束。
编写一程序统计此字符串的长度,并将它存入数据区LENTH单元,也显示在屏幕上。
STR1DB‘PleaseinputthecharofASCIIandtheCRtoendthestring’,’$’,0DH
LENGTHDW?
STACKSEGMENTPARASTACK‘STACK’
LEABX,STR1;
设置STR1的地址指针为BX
MOVDL,0;
用DL统计字符个数
NEXT1:
取字符
INCBX
CMPAL,0DH
JZEXIT;
为零,则是回车符,转EXIT
JGENEXT;
非零,则不是回车符,顺序执行
INCDL;
若非数字,DL记下一个字符
JMPNEXT1
CMPAL,39H
JBENEXT1;
若(AL)为数字0~9,不统计,转NEXT1
若(AL)>
39H,非数字0~9.DL记下一个字符,然后转NEXT1
EXIT:
MOVLENGTH,DL
LEABX,LENGTH
MOVCH,02H
LOP1:
MOVCL,04
ROLDL,CL
ANDDL,0FH
ADDDL,30H;
将(DL)转换成它的ASCII码
CMPDL,3AH
JBSTORE
ADDDL,07H
MOV[BX],DL;
存结果至LENGTH字单元
DECCH
JNZLOP1
LEADX,LENGTH
显示LENGTH字单元的内容
CODEENDS
4-22试用串操作指令将数据区一个数组BLOCK(均为字节数)中的奇数和偶数分开存放,统计奇、偶数的个数,并将奇数送DATA2首址区,偶数送DATA3首址区。
DATA1DB00H,01H,09H,0AH,…
DATA2-1DB0
DATA2DB64HDUP(?
DATA3-1DB0
DATA3DB64HDUP(?
DW10HDUP(?
DATA,SS:
LEABX,DATA1
LEASI,DATA2
LEADI,DATA3
MOVCX,64H
XORDX,DX
LOP:
MOVAL,[BX]
TESTAL,01H
JZNEXT1
MOV[SI],AL
INCSI
INCDH
JMPXEXT2
NEXT1:
MOV[DI],AL
INCDI
INCDL
NEXT2:
INCBX
LOOPLOP
MOVDATA2-1,DH
MOVDATA3-1,DL
4-23编一个程序,其功能是将一个字节数组ARRAY中的正数和负数分开存放于以PLUS和MINUS开始的单元中,并在屏幕上显示正数和负数的个数。
设该数组长度放在数组的第一个字节单元中。
ARRAYDW-1,5,-3,8,18,-4,-2,48
COUNTDB$-ARRAY
PLUSDBCOUNTDUP(?
MINUSDBCOUNTDUP(?
DATA,ES:
MOVES,AX
INIT:
MOVSI,OFFSETARRAY+1
MOVDI,OFFSETPLUS+1
MOVBX,OFFSETMINUS+1
MOVCX,COUNT
GOON:
LODSB
TESTAL,80H
JNZMIS
INCBYTEPTRPLUS
PLS:
STOSB
JMPAGAIN
MIS:
INCBYTEPTRMINUS
XCHGBX,DI
AGAIN:
DECCX
JNZGOON
ORBYTEPTRPLUS,30H
MOVDL,BYTRPTRPLUS
MOVAH,02H
ORBYTEPTRMINUS
4-24现有一组无序的字:
25,46,3,75,-5,30,要求对它们进行排序,其算法框图如教材图4-31所示,试编写完成此功能的程序。
设该组无序的字采取从小到大排序。
STACKSEGMENTPARASTACK
DW100DUP(?
STRDW25,46,3,75,-5,30
NEQU$-STR
MOVBX,N-1
MOVCX,BX
SHRCX,1
MOVDI,CX
MOVBX,OFFSETSTR
MOVAX,[BX]
CMPAX,[BX+2]
MOV[BX],AX
LOOPNEXT1
JNZNEXT2
ENDMAIN
4-25编写一程序,求级数12+22+32+…+的前n项和刚大于1000的项数n。
采用双重循环
MOVBX,0
MOVDX,0
LOP1:
MOVCX,BX
LOP2:
ADDAX,BX
LOOPLOP2
ADDDX,AX
CMPDX,1000
JBELOP1
4-26数据区中有一段英文字符串ENGLISH。
试编写一个程序,查对单词SUN在该字符串
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微计算机原理第2版第四章课后习题答案 潘名莲 马争 丁庆生 编著 计算机 原理 第四 课后 习题 答案 庆生