微机原理习题答案4.doc
微型计算机原理第4章习题参考答案
4.1已知某数据段中有
COUNT1EQU16H
COUNT2DW16H
下面两条指令有何异同。
MOVAX,COUNT1
MOVBX,COUNT2
解:同:执行完之后,AX=BX=16H
异:MOVAX,COUNT1向AX中传送的是立即数,而MOVBX,COUNT2向BX中传送的是变量内容。
4.2下列程序段执行后,寄存器AX、BX和CX的内容分别是多少?
ORG0202H
DA-WORDDW20H
MOVAX,DA-WORD ;AX=0020H
MOVBX,OFFSETDA-WORD ;BX=0202H
MOVCL,BYTEPTRDA-WORD ;CL=20H
MOVCH,TYPEDA-WORD ;CH=02H
解:AX=0020H,BX=0202H,CX=0220H
4.3设平面上有一点P的直角坐标(x,y),试编制完成以下操作的程序:
如P点落在第I象限,则K=I;
如P点落在坐标轴上,则K=0。
解:
DATSEGMENT
msg dbpleaseinputnumberonly!$
MSG1 DB10,13,INPUTX:$
MSG2 DB10,13,INPUTY:$
xbuf db20,0
xbuf1 db20dup(?)
ybuf db20,0
ybuf1 db20dup(?)
D1 DB10,13,K=
D2 DB?,$
DAT ENDS
COD SEGMENT
ASSUMECS:COD,DS:DAT
BG: MOVAX,DAT
MOVDS,AX
movdx,offsetmsg
movah,9
int21h
MOVDX,OFFSETMSG1
MOVAH,9
INT21H
movdx,offsetxbuf
MOVAH,0AH
INT21H
MOVDX,OFFSETMSG2
MOVAH,9
INT21H
movdx,offsetybuf
MOVAH,0AH
INT21H
CMPybuf1,0
JEPRO1
CMPxbuf1,0
JEPRO1
cmpxbuf1,-
JzPRO2
CMPybuf1,-
JePRO4
MOVD2,1
JMPSHOW
PRO1: MOVD2,0
JMPSHOW
PRO2: CMPybuf1,-
JePRO3
MOVD2,2
JMPSHOW
PRO3: MOVD2,3
JMPSHOW
PRO4: MOVD2,4
SHOW: MOVDX,OFFSETD1
MOVAH,9
INT21H
movah,4ch
int21h
COD ENDS
ENDBG
4.4试编制一程序,把CHAR1中各小写字母分别转换为对应的大写字母,并存放于CHAR2开始的内存单元中。
CHARDB‘abcdef’
CHAR2DB$—CHAR1DUP(0)
解:
DAT SEGMENT
CHAR1 DBabcdefgh
CHAR2 DB$-CHAR1DUP(0)
N EQU$-CHAR2
DAT ENDS
COD SEGMENT
ASSUMECS:COD,DS:DAT
BG: MOVAX,DAT
MOVDS,AX
MOVSI,0
MOVCX,N
LP: MOVAL,CHAR1[SI]
SUBAL,20H
MOVCHAR2[SI],AL
INCSI
LOOPLP
MOVAH,4CH
INT21H
COD ENDS
ENDBG
4.5试编写一程序,把DABY1字节单元中数据分解成3个八进制数,其最高位八进制数据存放在DABY2字节单元中,最低位存放在DABY2+2字节单元中。
DABY1DB6BH
DABY2DB3DU