微机接口答案Word文档下载推荐.docx
《微机接口答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机接口答案Word文档下载推荐.docx(93页珍藏版)》请在冰豆网上搜索。
数据段中变量名为VAL的偏移地址值为0030H,试说明以下源操作数字段的寻址方式是什
么?
物理地址值是多少?
〔1〕MOVAX,[100H]〔2〕MOVAX,VAL〔3〕MOVAX,[BX]
〔4〕MOVAX,ES:
[BX]〔5〕MOVAX,[SI]〔6〕MOVAX,[BX+10H]
〔7〕MOVAX,[BP]〔8〕MOVAX,VAL[BP][SI]
〔9〕MOVAX,VAL[BX][DI]〔10〕MOVAX,[BP][DI]
〔1〕直接,10100H〔2〕直接,10030H〔3〕存放器间接,10100H
〔4〕存放器间接,20100H〔5〕存放器间接,100A0H〔6〕存放器相对,10110H
〔7〕存放器间接,35200H〔8〕相对基址变址,352D0H
〔9〕相对基址变址,10154H〔10〕基址变址,35224H
4.写出以下指令的机器码
〔1〕MOVAL,CL〔2〕MOVDX,CX〔3〕MOV[BX+100H],3150H
〔1〕1000101011000001B
〔2〕1000101111010001B
〔3〕110001111000011100000000000000010101000000110001B
5.程序的数据段为:
DATASEGMENT
ADB‘$’,10H
BDB‘COMPUTER’
CDW1234H,0FFH
DDB5DUP(?
)
EDD1200459AH
DATAENDS
求以下程序段执行后的结果是什么。
MOVAL,A
MOVDX,C
XCHGDL,A
MOVBX,OFFSETB
MOVCX,3[BX]
LEABX,D
LDSSI,E
LESDI,E
MOVAL,AAL=24H
MOVDX,CDX=1234H
XCHGDL,ADL=24H,A=34H
MOVBX,OFFSETBBX=2
MOVCX,3[BX]CX=5550H
LEABX,DBX=000EH
LDSSI,EDS=1200H,SI=459AH
LESDI,EES=1200H,DI=459AH
6.指出以下指令中哪些是错误的,错在什么地方。
〔1〕MOVDL,AX〔2〕MOV8650H,AX〔3〕MOVDS,0200H
〔4〕MOV[BX],[1200H]〔5〕MOVIP,0FFH〔6〕MOV[BX+SI+3],IP
〔7〕MOVAX,[BX][BP]〔8〕MOVAL,ES:
[BP]〔9〕MOVDL,[SI][DI]
〔10〕MOVAX,OFFSET0A20H〔11〕MOVAL,OFFSETTABLE
〔12〕XCHGAL,50H〔13〕INBL,05H〔14〕OUTAL,0FFEH
〔1〕长度不匹配〔2〕立即数不能做目的操作数
〔3〕段存放器不能用立即数赋值〔4〕两个内存单元不能直接传送数据
〔5〕IP不能用指令直接修改〔6〕指令中不能出现IP
〔7〕BX/BP应与SI/DI搭配〔8〕正确
〔9〕SI/DI应与BX/BP搭配〔10〕OFFSET后应跟内存单元
〔11〕偏移地址为16位,AL长度不够〔12〕立即数不能用于XCHG
〔13〕IN必须用AL/AX〔14〕操作数顺序反向;
地址应为8位
7.当前数据段中有一个十进制数字0~9的7段代码表,其数值依次为40H,79H,24H,
30H,19H,12H,02H,78H,00H,18H。
要求用XLAT指令将十进制数57转换成相应的
7段代码值,存到BX存放器中,试写出相应的程序段。
DATASEGMENT
TABLEDB40H,79H,24H,30H,19H,12H,02H,78H,00H,18H
……
MOVAL,5
MOVBX,OFFSETTABLE
XLATTABLE
MOVCL,AL
MOVAL,7
MOVBL,AL
MOVBH,CL
8.当前SS=1050H,SP=0100H,AX=4860H,BX=1287H,试用示意图表示执行以下指
令过程中,堆栈中的内容和堆栈指针SP是怎样变化的。
PUSHAX
PUSHBX
POPBX
POPAX
〔1〕指
9.以下指令完成什么功能?
〔1〕ADDAL,DH〔2〕ADCBX,CX〔3〕SUBAX,2710H
〔4〕DECBX〔5〕NEGCX〔6〕INCBL
〔7〕MULBX〔8〕DIVCL
〔1〕AL+DH→AL〔2〕BX+CX+CF→BX〔3〕AX-2710H→AX
〔__________4〕BX-1→BX〔5〕0-CX→CX〔6〕BL+1→BL
〔7〕AX*BX→DX,AX〔8〕AX/CL商→AL,余数→AH
10.AX=2508H,BX=0F36H,CX=0004H,DX=1864H,求以下每条指令执行后的结果
是什么?
标志位CF等于什么?
〔1〕ANDAH,CL〔2〕ORBL,30H〔3〕NOTAX
〔4〕XORCX,0FFF0H〔5〕TESTDH,0FH〔6〕CMPCX,00H
〔7〕SHRDX,CL〔8〕SARAL,1〔9〕SHLBH,CL
〔10〕SALAX,1〔11〕RCLBX,1〔12〕RORDX,CL
〔1〕AX=0408H,CF=0〔2〕BX=0F36H,CF=0
〔3〕AX=0DAF7H,CF不变〔4〕CX=0FFF4H,CF=0
〔5〕DX=01864H,CF=0〔6〕CX=0004H,CF=0
〔7〕DX=0186H,CF=0〔8〕AX=2504H,CF=0
〔9〕BX=0F036H,CF=0〔10〕AX=4A10H,CF=0
〔11〕BX=1E6C/1E6DH,CF=0〔12〕DX=4186H,CF=0
11.假设数据段定义如下:
STRINGDB‘ThePersonalComputer&
TV’
试用字符串操作等指令编程完成以下功能:
〔1〕把该字符串传送到附加段中偏移量为GET_CHAR开始的内存单元中。
〔2〕比拟该字符串是否与’TheComputer’相同,假设相同那么将AL存放器的内容置1,否那么置
0。
并要求将比拟次数送到BL存放器中。
〔3〕检查该字符串是否有’&
’,假设有那么用空格字符将其替换。
〔4〕把字符串大写字母传送到附加段中以CAPS开始的单元中,其余字符传到以CHART
开始的单元中。
然后将数据段中存储上述字符串的单元清0。
〔1〕CLD
LEASI,STRING
LEADI,GET_CHAR
MOVCX,26
REPMOVSB
〔2〕补充在附加段定义
STRING1DB‘Thecomputer’
MOVAL,1
CLD
LEADI,STRING1
MOVCX,12
REPZCMPSB
JZSKIP
MOVAL,0
SKIP:
MOVBX,12
SUBBX,CX
〔3〕MOVAX,DATA
MOVES,AX
MOVAL,'
&
'
LEADI,STRING
NEXT:
REPNESCASB
JZFIND
JMPEXIT
FIND:
MOVBYTEPTR[DI-1],'
'
JCXZEXIT
JMPNEXT
EXIT:
〔4〕LEASI,STRING
LEADI,CAPS
LEABX,CHART
MOVAL,[SI]
CMPAL,’A’
JBOTHER
CMPAL,’Z’
JAOTHER
MOVES:
[DI],AL
INCDI
JMPSKIP
OTHER:
MOVES:
[BX],AL
INCBX
MOVBYTEPTR[SI],0
INCSI
LOOPNEXT
12.编程将AX存放器中的内容以相反的顺序传送到DX存放器中,并要求AX中的内容不
被破坏,然后统计DX存放器中‘1’的个数是多少。
:
MOVBL,0
MOVDX,0
MOVCX,16
SHLAX,1
JNCSKIP
INCBL
RCRDX,1
STOP:
POPAX
13.设CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,
〔20300H〕=4800H,〔20302H〕=00FFH,TABLE=0500H,PROG_N标号的地址为1200:
0278H,PROG_F标号的地址为3400H:
0ABCH。
说明以下每条指令执行完后,程序将分别
转移到何处执行?
〔1〕JMPPROG_N
〔2〕JMPBX
〔3〕JMP[BX]
〔4〕JMPFARPROG_F
〔5〕JMPDWORDPTR[BX]
如将上述指令中的操作码JMP改成CALL,那么每条指令执行完后,程序转向何处执行?
并
请画图说明堆栈中的内容和堆栈指针如何变化。
〔1〕1200H:
0278H
〔2〕1200H:
0300H
〔3〕1200H:
4800H
〔4〕3400H:
0ABCH
〔5〕00FFH:
将操作码JMP改成CALL后:
指令长度为3,那么IP=0100H+3=0103H,入栈
指令长度为2,那么I