微机原理及接口技术习题答案Word文件下载.docx
- 文档编号:19406458
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:15
- 大小:32.58KB
微机原理及接口技术习题答案Word文件下载.docx
《微机原理及接口技术习题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术习题答案Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
〔2〕MOVBX,VAR1[SI]正确。
存放器相对寻址,目的:
〔3〕MOVAX,[BX]正确。
存放器间接寻址,目的:
〔4〕MOVAL,[DX]错误。
存放器间接寻址时,DX,AX,CX不能作地址存放器
〔5〕MOVBP,AL错误。
操作数类型不一致
〔6〕MOVVAR1,VAR2错误。
两存储单元之间不能用MOV指令传送数据
〔7〕MOVCS,AX错误。
CS不能为目的操作数
〔8〕MOVDS,0100H错误。
目的操作数为段存放器时,源操作数不能为立即数
〔9〕MOV[BX][SI],1错误。
指令类型不定。
〔10〕MOVAX,VAR1+VAR2错误。
MOV指令中不能完成加法运算
〔11〕ADDAX,LENGTHVAR1正确。
立即数寻址。
目的:
〔12〕ORBL,TYPEVAR2正确。
〔13〕SUB[DI],78H错误。
指令类型不定
〔14〕MOVSVAR1,VAR2正确。
目的、源均为隐含寻址。
操作数仅指出操作数类型
〔15〕PUSH100H错误。
将常数压入堆栈,要通过存放器来实现
〔16〕POPCS错误。
目的操作数不能为CS
〔17〕XCHGAX,ES错误。
XCHG指令的操作数不能是段存放器
〔18〕MOVDS,CS错误。
MOV指令不能从段存放器到段存放器
〔19〕JMPL1+5正确。
段直接转移
〔20〕DIVAX,10错误。
指令格式错误。
〔21〕SHLBL,2错误。
移位指令的移位数为1或者CL
〔22〕MOVAL,15+23正确。
源:
立即数寻址,目的:
存放器。
编译时就处理为38
〔23〕MULCX正确。
存放器寻址,目的:
〔24〕XCHGCL,[SI]正确。
〔25〕ADCCS:
[0100],AH正确。
存放器寻址,目的:
直接寻址〔数据在代码段中〕
〔26〕SBBVAR1-5,154正确。
立即数寻址,目的:
直接寻址。
4.说明以下指令对的区别:
(1)MOVAX,VAR1与MOVAX,OFFSETVAR1
(2)MOVAX,VAR2与LEAAX,VAR2
(3)MOVAL,LENGTHVAR1与MOVAL,SIZEVAR1
(4)MOVAL,ES:
[DI]CMPAL,[SI]与CMPSB
(5)SHRAL,1与SARAL,1
(6)SHRAL,1与RORAL,1
(7)ROLBX,1与RCLBX,1
〔1〕MOVAX,VAR1把变量VAR1对应地址单元中的一个字送入AX
MOVAX,OFFSETVAR1把VAR1的有效地址的偏移地址送入AX
〔2〕MOVAX,VAR2把变量VAR2对应地址单元中的一个字送入AX
LEAAX,VAR2把VAR2的有效地址的偏移地址送入AX
〔3〕MOVAL,LENGTHVAR1把变量VAR1的长度送入AL
MOVAL,SIZEVAR1把变量VAR1的大小送入AL
〔4〕MOVAL,ES:
[DI]
CMPAL,[SI]把以ES为段地址,DI为偏移地址的一个字节送入AL,
并与以SI容为偏移地址的一个字节作比拟,改变标志寄
存器容。
〔相当于作ES:
〔DI〕与〔DS:
〔SI〕容比拟〕
CMPSB对字符串中的一字节比拟。
寻址方式隐含。
源串的地址由
DS:
SI指定,目的串的地址由ES:
DI指定。
〔相当于作
〔SI〕与ES:
〔DI〕容比拟〕
〔5〕SHRAL,1AL逻辑右移1位,最高位移入0,最低位移入CF。
SARAL,1AL算术右移1位,以最高位容移入,最低位移入CF,其余各位
右移一位。
〔6〕SHRAL,1AL逻辑右移1位,最高位移入0,最低位移入CF。
RORAL,1AL的各位构成环形移位,右移一位,最低位容同时移入到CF和
最高位。
〔7〕ROLBX,1BX各位构成环形移位,左移一位,最高位容同时移入到CF和
最低位。
RCLBX,1BX和CF构成环形移位,左移一位,CF容移入到最低位,最
高位移入CF。
5.写出以下转移指令的寻址方式〔设L1为标号,VAR1为字型变量,DVAR1为双字型变量〕:
〔1〕JMPL1〔2〕JMPNEARL1
〔3〕JNZL1〔4〕JMPBX
〔5〕JGL1〔6〕JMPVAR1[SI]
〔7〕JMPFARPTRL1〔8〕JMPDVAR1
〔1〕JMPL1段直接寻址〔2〕JMPNEARPTRL1段直接寻址
〔3〕JNZL1段直接寻址〔4〕JMPBX段间接寻址
〔5〕JGL1段直接寻址〔6〕JMPVAR1[SI]段间接寻址
〔7〕JMPFARPTRL1段间直接寻址〔8〕JMPDVAR1段间间接寻址
6.设〔DS〕=2000H,〔BX〕=0100H,〔SI〕=0002H,〔20100〕=3412H,〔20102〕=7856H,〔21200〕=4C2AH,〔21202〕=65B7H,求以下指令执行后AX存放器的容:
〔1〕MOVAX,1200H;
〔2〕MOVAX,BX;
〔3〕MOVAX,[1200H];
〔4〕MOVAX,[BX];
〔5〕MOVAX,1100[BX];
〔6〕MOVAX,[BX][SI];
〔7〕MOVAX,1100[BX][SI]
〔1〕1200H〔2〕0100H〔3〕4C2AH〔4〕3412H〔5〕4C2AH
〔6〕7856H〔7〕65B7H
7.执行以下指令后,DX存放器中的容是多少?
TABLEDW25,36,-1,-16,10000,13
PYLDW7
……
MOVBX,OFFSETTABLE
ADDBX,PYL
MOVDX,[BX]
DX=10FFH由-16〔FFF0H〕的高8位和10000〔2710H〕的低8位构成
8.如果堆栈的起始地址为2200:
0000,栈底为0100H,〔SP〕=00A8H,求
〔1〕栈顶地址;
〔2〕SS的容;
〔3〕再存入数据5678H,3AF2H后,SP的容。
栈顶地址00A8H,SS=2200H,再存入2个字后,SP=00A4H
9.设已用伪指令EQU定义了4个标识符:
N1EQU2100
N2EQU10
N3EQU20000
N4EQU25000
以下指令是否正确?
并说明原因。
〔1〕ADDAL,N1-N2;
〔2〕MOVAX,N3+N4;
〔3〕SUBBX,N4-N3;
〔4〕SUBAH,N4-N3-N1;
〔5〕ADDAL,N2;
〔6〕MOVAH,N2*N2
〔1〕错误。
N1-N2=2090>
255〔2〕正确〔3〕正确
〔4〕错误。
N4-N3-N1=2900>
255〔5〕正确〔6〕正确
10.按以下要求写出指令:
〔1〕将AX存放器的低4位清零,其余位不变;
〔2〕将BX存放器的低4位置1,其余位不变;
〔3〕将AL存放器的低4位保持不变,高4位取反;
〔4〕测试BX中的位1和位2,当这两位同时为0时将AL置0FFH,否那么AL清零;
〔5〕测试BX中的位1和位2,当这两位有一位为0时将AL置0FFH,否那么AL清零;
〔6〕将AL中保存的字母ASCII码变换成相应的大写字母的ASCII码;
〔7〕将AL中保存的字母ASCII码变换成相应的小写字母的ASCII码;
〔8〕将AX中的各位取反;
〔9〕将DX中的低7位取反,高9位不变;
〔10〕将CX中的低8位与高8位互换。
〔1〕ANDAX,0FFF0H
〔2〕ORBX,000FH
〔3〕XORAL,0F0H
〔4〕TESTBX,06H〔5〕MOVAX,BX
JZZEROANDAX,06H
MOVAL,00HXORAX,06H
JMPOVERJZOVER
ZERO:
MOVAL,0FFHMOVAL,0FFH
OVER:
OVER:
〔6〕ANDAL,5FH
或者:
CMPAL,61H
JLOVER〔无需变换或不是字母〕
CMPAL,7AH
JGOVER〔不是字母〕
ANDAL,5FH或SUBAL,20H
〔7〕ORAL,20H
CMPAL,41H
JLOVER〔不是字母〕
CMPAL,5AH
JGOVER〔无需变换或不是字母〕
ORAL,20H或ADDAL,20H
〔8〕XORAX,0FFFFH或者NOTAX
〔9〕XORDX,007FH
〔10〕XCHGCH,CL
11.写出完成下述功能的程序段:
〔1〕传送40H到AL存放器;
〔2〕将AL的容乘以2;
〔3〕传送16H到AH存放器;
〔4〕AL的容加上AH的容。
计算最后结果〔AL〕=?
〔1〕MOVAL,40H
〔2〕SHLAL,1
〔3〕MOVAH,16H
〔4〕ADDAL,AH
AL=96H
12.写出完成下述功能的程序段:
〔1〕从缓冲区BUF的0004偏移地址处传送一个字到AX存放器;
〔2〕将AX存放器的容右移2位;
〔3〕将AX容与BUF的0006偏移地址处的一个字相乘;
〔4〕相乘结果存入BUF的0020H偏移地址处〔低位在前〕。
〔1〕LEASI,BUF
MOVAX,[SI+4]
(2)SHRAX,1
SHRAX,1
(3)MULWORDPTR6[SI]
(4)MOV20H[SI],AX
MOV22H[SI],DX
13.设〔BX〕=11001011B,变量VAR的容为00110010B,求以下指令单独执行后BX的容:
〔1〕XORBX,VAR;
〔2〕ANDBX,VAR;
〔3〕ORBX,VAR;
〔4〕XORBX,11110000B;
〔5〕ANDBX,00001111B;
〔6〕TESTBX,1
〔1〕00F9H
〔2〕0002H
〔3〕00FBH
〔4〕003BH
〔5〕000BH
〔6〕00CBH
14.设〔DX〕=10111011B,〔CL〕=3,〔CF〕=1,求以下指令单独执行后DX的容:
〔1〕SHRDX,1;
〔2〕SARDX,CL;
〔3〕SHLDX,CL;
〔4〕SHLDX,1;
〔5〕RORDX,CL;
〔6〕ROLDL,CL;
〔7〕SALDH,1;
〔8〕RCLDX,CL;
〔9〕RCRDL,1
DX=0000000010111011BCF=1CL=3
〔1〕SHRDX,1DX逻辑右移10000000001011101B=005DH
〔2〕SARDX,CLDX算术右移30000000000010111B=0017H
〔3〕SHLDX,CLDX逻辑左移30000010111011000B=05D8H
〔4〕SHLDX,1DX逻辑左移10000000101110110B=0176H
〔5〕RORDX,CLDX循环右移30110000000010111B=6017H
〔6〕ROLDL,CLDL循环左移30000000011011101B=00DDH
〔7〕SALDH,1DH算术左移10000000010111011B=00BBH
〔8〕RCLDX,CLDX带进位循环左移30000010111011100B=05DCH
〔9〕RCRDL,1DL带进位循环右移10000000011011101B=00DDH
15.选择题〔各小题只有一个正确答案〕
〔1〕执行以下三条指令后:
MOVSP,1000H
PUSHAX
CALLBX
a.〔SP〕=1000H;
b.〔SP〕=0FFEH;
c.〔SP〕=1004H;
d.〔SP〕=0FFCH;
〔2〕要检查存放器AL中的容是否与AH一样,应使用的指令为:
a.ANDAL,AHb.ORAL,AH
c.XORAL,AHd.SBBAL,AH
〔3〕指令JMPNEARPTRL1与CALLL1〔L1为标号〕的区别在于:
a.寻址方式不同;
b.是否保存IP的容;
c.目的地址不同;
d.对标志位的影响不同。
〔1〕DPUSHUAX那么AX入栈,SP=0FFEH;
CALLBX那么IP入栈,SP=0FFCH
〔2〕C异或,假设一样,那么AL=0,ZF=1。
〔3〕B
16.存放器DX:
AX组成32位数,DX为高位,编写程序段实现:
〔1〕DX:
AX右移3位,并将移出的低3位保存在CL中;
〔2〕DX:
AX左移3位,并将移出的高3位保存在CL中;
〔1〕移出的3位应该按时序移入CL中。
XORCL,CL
MOVBL,3
L1:
SHRDX,1
RCRAX,1
RCLCL,1
DECBL
JNZL1
〔2〕移出的3位应该按时序移入CL中。
SHLAX,1
RCRDX,1
RCRCL,1
17.编写程序段实现将BL中的每一位重复4次,构成32位的双字DX:
AX,例如当BL=01011101B时,那么得到的〔DX〕=0F0FH,〔AX〕=0FF0FH。
算术右移时,移入的值就是最高位本身,这样可以使位容重复,利用这一点可以实现题目的要求。
XORDX,DX
XORAX,AX
MOVCX,4
SHRBL,1
RCRAX,1
SARAX,1
SARAX,1
LOOPL1
MOVCX,4
L2:
SHRBL,1
RCRDX,1
SARDX,1
SARDX,1
LOOPL2
18.字变量VAR1中保存有小于38250的16位无符号数,编写程序段实现VAR1÷
150,并进展四舍五入操作,将商保存在字节变量VAR2中。
根据题意,38250÷
150=255,因此商不会超过255,可以用一个字节表示。
a÷
b的四舍五入操作可以通过判断除后余数实现:
余数大于等于除数的一半,那么商加1;
否那么不用加1。
但这种方法用汇编语言编程实现时比拟复杂,这里介绍另外一种方法:
设a÷
b的四舍五入后的结果为c,用『』表示取整数操作,那么
这种方法是在除法操作之前,在被除数上加上除数的一半,这样除法操作后得到的值就是考虑了四舍五入的商。
VAR1DW12345
VAR2DB?
DATAADB150
MOVAX,VAR1
XORBX,BX
MOVBL,DATAA
SHRBX,1
ADDAX,BX
DIVDATAA
MOVVAR2,AL
19.有一组无符号的16位数据保存在BUFFER中,前两个字节存放数据的个数,编程实现按下式进展滤波处理:
滤波结果保存在FILT中。
BUFFERDW0CH
DW33H,18H,1BH,06H,33H,08H
DW3H,6H,0FH,51H,05H,0CH
FILTDW100HDUP〔?
LEASI,BUFFER
LEADI,FILT
MOVCX,[SI]
MOV[DI],CX
ADDSI,2
ADDDI,2
XORDX,DX
MOVAX,[SI]
MOV[DI],AX
MOVBX,2[SI]
MOV2[DI],BX
ADDSI,4
ADDDI,4
DECCX
ADCDX,0
MOVBX,3
ADDAX,[SI]
PUSHDX
PUSHAX
DIVBX
POPAX
POPDX
SUBAX,[SI-4]
SUBBDX,0
LOOPL1
20.在由字符串构成的缓冲区BUFFER中,前2个字节存放字符个数,后续每个字节存放一个字符的ASCII码。
编写程序实现将字符串‘2004’替换成‘2006’。
在数据段中定义:
BUFFERDW74
DB‘Thisyearis2004.In2004,wehaveaplanforreducingannualexpensive10%’
DESTDB‘2004’
在代码段中编写程序段:
CLD
LEADI,DEST
PUSHSI
PUSHDI
PUSHCX
MOVCX,4
REPZSCASB
JNZL2
MOVBYTEPTR[SI-1],’6’
POPCX
POPDI
POPSI
INCSI
INCDI
LOOPL1
21.定义有以下宏指令:
WAGSMACROS1,S2,S3
SUBAX,AX
MOVDX,AX
ADDAX,S1
ADDAX,S2
ADCDX,0
ADDAX,S3
ENDM
当采用宏调用指令“WAGS60000,25000,3000”时,执行后DX=AX=。
宏指令WAGS完成的功能为S1+S2+S3,结果放在DX:
AX中。
所以,调用“WAGS60000,25000,3000”时,其结果为DX=0001H,AX=57C0H
22.对上题定义的宏指令,如果采用宏调用指令“WAGSBX,CX,SI〞时,写出宏展开形式。
调用“WAGSBX,CX,SI〞时,宏展开形式:
SUBAX,AX
MOVDX,AX
ADDAX,CX
ADDAX,SI
23.写出宏指令SUMMING,实现将字节缓冲区array中的容求校验和〔保存低8位〕,并保存在VALUE中。
设array前两个字节保存缓冲区字节数,在宏指令SUMMING,将array和VALUE作为形式参数。
SUMMINGMACROarray,VALUE
LEASI,array
MOVCX,[SI]
ADDSI,2
XORAL,AL
ADDAL,[SI]
LOOPL1
MOVVALUE,AL
ENDM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 习题 答案