微机计算机原理课后习题答案.docx
- 文档编号:17533766
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:15
- 大小:23.38KB
微机计算机原理课后习题答案.docx
《微机计算机原理课后习题答案.docx》由会员分享,可在线阅读,更多相关《微机计算机原理课后习题答案.docx(15页珍藏版)》请在冰点文库上搜索。
微机计算机原理课后习题答案
第二章
1.将下列十进制数转换成二进制和十六进制
(1)129.75=100000001.11B
=81.CH
(2)218.8125=11011010.1101B
=DA.DH
(3)15.625=1111.101B
=F.AH
(4)47.15625=101111.00101B
=2F.28H
2.将下列二进制数转换成十进制和十六进制
(1)111010B=58
=3AH
(2)10111100.11B =188.875
=BC.EH
(3)0.11011B=0.84375
=0.D8H
(4)11110.01B=30.25
=1E.4H
4、完成下列16进制的加减法运算。
(1)0D14BH
(2)9C28.EH
(3)1678.FCH (4)-80D7H
5.计算下列表达式的值
(1)128.8125+10110101.1011B+1F.2H
=(101010101.101)B
(2)287.68-10101010.11B+8E.EH
=(103.CE)H
(3)18.9+1010.1101B+12.6H-1011.1001B
=(36.525)D
7.写出下列以补码表示的二进制数的真值:
1)[X]补=1000000000000000
?
X=-1000000000000000=-215=-32768
(2)[Y]补=0000000100000001
?
Y=+0000000100000001=+257
(3)[Z]补=1111111010100101
?
X=- 000000101011011=-347
(4)[A]补=0000001001010111
?
X=+0000001001010111=+599
9、设有变量……..
X+Y=1B8H Y+Z=161H
Y+Z=13BH Z+V=0CCH
(1)不正确 不正确 不正确 正确
(2)正确 正确 正确 溢出
12.试计算下列二进制数为无符号数、原码、反码、补码、8421BCD码时分别代表的数值大小。
若为非8421BCD数时请指出。
(1)10001000B
无符号数:
27+23=136
原码:
-0001000=-8
反码:
-1110111=-119
补码:
-1111000=-120
8421BCD码:
88
2)00101001B
无符号数:
25+23+20=41
原码:
41
反码:
41
补码:
41
8421BCD码:
29
3)11001001B
无符号数:
27+26+23+20=201
原码:
-1001001=-73
反码:
-0110110=-54
补码:
-0110111=-55
8421BCD码:
非8421BCD码
(4)10010011B
无符号数:
27+24+21+20=147
原码:
-0010011=-19
反码:
-1101100=-108
补码:
-1101101=-109
8421BCD码:
93
第4章作业
1、指出源操作数的寻址方式
⑴MOV BX,2000H ;立即数寻址
⑵MOV BX,[2000H];直接寻址
⑶MOVBX,[SI] ;寄存器间接寻址
⑷MOVBX,[SI+2000H];寄存器相对寻址
⑸MOV[BX+SI],AL;寄存器寻址
⑹ADDAX,[BX+DI+80];基址变址相对寻址
⑺MULBL ;寄存器寻址
⑻JMPBX ;段内间接寻址
⑻SUBAX,BX ;寄存器寻址
⑼IN AL,DX;端口间接寻址
⑽INCWORDPTR[BP+10H];寄存器相对寻址
⑾MOVCL,LENGTHVAR ;立即数寻址
⑿MOVBL,OFFSETVAR1 ;立即数寻址
2、指出下列指令是否正确
(1)MOVDS,0100H;错误。
源操作数是立即数时,目的操作数不能是段寄存器
(2)MOVBP,AL;错误。
操作数类型不一致
(3)XCHGAH,AL;正确。
(4)OUT 310H,AL;错误。
端口直接寻址的范围应在0~FFH之间
(5)MOVBX,[BX] ;正确。
(6)MOVES:
[BX+DI],AX ;正确。
(7)MOVAX,[SI+DI] ;错误。
存储器寻址中有效地址不能由两个变址寄存器组成
(8)MOVSS:
[BX+SI+100H],BX;正确。
(9)AND AX,BL;错误。
操作数类型不一致
(10)MOVDX,DS:
[BP];正确
(11)ADD [SI],20H ;错误,目的操作数类型不明确。
(12)MOV30H,AL;错误,目的操作数不能为立即数
(13)PUSH2000H;错误。
堆栈指令的操作数不能是立即数
(14)MOV[SI],[2000H];错误。
两个操作数不能同时为存储器操作数
(15)MOVSI,AL ;错误。
操作数类型不一致
(16)ADD [2000H],20H;错误,目的操作数类型不明确
(17)MOVCS,AX;错误,目的操作数不能为代码段寄存器
(18)INC [DI];错误,目的操作数类型不明确
(19)OUTBX,AL;错误。
端口间接寻址的寄存器只能是DX寄存器
(20)SHLBX,3 ;错误。
移位次数大于1时应该用CL寄存器
(21)XCHGCX,DS ;错误。
交换指令中不能出现段寄存器
(22)POPAL ;错误。
堆栈指令的操作数只能是字操作数(即16位操作数)
3.写出下列指令中存储器操作数物理地址的计算表达式:
1)MOVAL,[DI] (DS)×10H+(DI)
(2)MOVAX,[BX+SI] (DS)×10H+(BX)+(SI)
(3)MOV5[BX+DI],AL (DS)×10H+(BX)+(DI)+5
(4)ADD AL,ES:
[BX] (ES)×10H+(BX)
5)SUBAX,[1000H] (DS)×10H+1000H
(6)ADCAX,[BX+DI+2000H(DS)×10H+(BX)+(DI)+2000H
(7)MOVCX,[BP+SI] (SS)×10H+(BP)+(SI)
(8)INCBYTEPTR[DI] (DS)×10H+(DI)
4.若(DS)=3000H,(BX)=2000H,(SI)=0100H,
(ES)=4000H,计算下列各指令中存储器操作数的物理地址。
1)MOV[BX],AL
(DS)×10H+(BX) =32000H
(2)ADDAL,[BX+SI+1000H]
(DS)×10H+(BX)+(SI)+1000H=33100H
(3)MOVAL,[BX+SI]
(DS)×10H+(BX)+(SI)=32100H
(4)SUBAL,ES:
[BX]
(ES)×10H+(BX)=42000H
5.若(CS)=E000H,说明代码段可寻址物理存储空间的范围。
代码段物理地址为:
(CS):
(IP)
所以可寻址物理地址范围为:
(CS)×10H+(IP),其中IP的为16位寄存器,取值范围为:
0000H~0FFFFH
所以有寻址范围为:
0E0000H~0EFFFFH
6.设(SP)=2000H,(AX)=3000H,(BX)=5000H,问执行下面程序段后:
PUSHAX
PUSHBX
POP AX
(SP)=1FFEH,(AX)=5000H,(BX)=5000H
7、试比较SUBAL,09H与CMPAL,09H这两条指令的异同。
若(AL)=08H,分别执行上述两条指令后,(AL)=?
,CF=?
,OF=0,ZF=?
(1) 相同点:
两条指令都能完成(AL)-09H的功能,并且都影响六个状态标志位;
不同点:
SUB指令将运算结果回送到AL寄存器中,而CMP指令不回送。
(2)①(AL)=FFH,②(AL)=08H,CF=1,OF=0,ZF=0
8、分别执行下列指令,试求AL的内容及各状态标志位的状态。
(1)MOV AL,19H ;
ADD AL,61H;(AL)=7AH
OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0
(2)MOV AL,19H ;
SUBAL,61 ;(AL)=0DCH
OF=0 SF=1 ZF=0 AF=1 PF=0 CF=1
MOV AL,19H ;
SUBAL,61H;(AL)=0B8H
OF=0 SF=1 ZF=0 AF=0 PF=1 CF=1
(3)MOV AL,5DH ;
ADD AL,0C6H ;(AL)=23H
OF=0SF=0 ZF=0 AF=1 PF=0 CF=1
(4)MOV AL,7EH ;
SUBAL,95H;(AL)=0E9H
OF=1SF=1 ZF=0 AF=0 PF=0 CF=1
9.选用最少的指令,实现下述要求的功能。
1)AH的高4位清0
AND AH,0FH
(2)AL的高4位取反
XOR AL,0F0H
(3)AL的高4位移到低4位,高4位清0
MOV CL,4
SHR AL,CL
(4)AH的低4位移到高4位,低4位清0
MOVCL,4
SHL AL,CL
11.设初值(AX)=0119H,执行下列程序段后(AX)=?
MOVCH,AH
ADDAL,AH (AX)=011AH
DAA (AX)=0120H压缩型BCD码调整
XCHGAL,CH (AL)=01H
ADC AL,34H (AX)=0135H
DAA (AX)=0135H
MOV AH,AL (AH)=35H
MOV AL,CH (AL)=20H
结果:
(AX)=3520H
12.指出下列程序段的功能
1)
MOVCX,10
CLD
LEA SI,First
LEA DI,Second
REP MOVSB
功能:
将First开始的10个字节数据复制到Second开始的内存中
2)
CLD
LEA DI,[0404H]
MOVCX,0080H
XORAX,AX
REPSTOSW
功能:
将0404H开始的80H个字(100H个字节)的内存填充0
16.已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,
(BX)=0024H,(CX)=5678H,(BP)=0024H,
(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1EAF6H)=091DH,试求单独执行下列指令后的结果。
1)MOVCL,20H[BX][SI] ;(CL)= 0F6H
(2)MOV[BP][DI],CX ;(1E4F6H)= 56F6H
(3)LEABX,20H[BX][SI] ;(BX)= 0056H
MOVAX,2[BX] ;(AX)= 1E40H
(4)LDSSI,[BX][DI] ;
MOV[SI],BX ;((SI))= 0024H
(5)XCHGCX,32H[BX]
XCHG20H[BX][SI],AX ;(AX)= 5678H;(09226H)=1234H
20.设(IP)=3D8FH,(CS)=4050H,(SP)=0F17CH,
当执行:
CALL 2000:
0094H
后,试指出(IP)、(CS)、(SP)、((SP))、
((SP)+1)、((SP)+2)和((SP)+3)的内容。
(IP)= 0094H
(CS)= 2000H
(SP)= 0F178H 压4个字节进栈,-4H
((SP)) = 8FH
((SP)+1)= 3DH
((SP)+2)= 50H
((SP)+3)= 40H
第五章
2.PLENTH=16H, 以上3个变量所占的存储器的字节数。
3.L=6
4.假设程序中的数据定义如下:
LNAME DB 1,2,3,‘123’
ADDRESS DB 30DUP(?
)
CTTY DB 15DUP(?
)
CODE_LISTDB 1,7,8,3,2
1)用一条MOV指令将LNAME的偏移地址放入BX
(2)用一条指令将CODE_LIST的头两个字节的内容放入SI
(3)写一条伪指令定义符使CODE_LENGTH的值等于CODE_LIST域的实际长度。
答案
(1)MOV BX,OFFSET LNAME
(2)MOV SI,WORDPTR CODE_LIST
(3)CODE_LENGTH EQU $-CODE_LIST
5.对于下面的数据定义,试说明三条MOV指令的执行结果。
TABLEA DW 10DUP(?
)
TABLEB DB 10DUP(?
)
TABLEC DB ‘123’
MOV AX,LENGTH TABLEA ;(AX)= 10
MOV BL,LENGTH TABLEB ;(BL)= 10
MOV CL,LENGTH TABLEC ;(CL)= 1
6.(AX)=1,(AX)=2,(CX)=20,(DX)=40,(CX)=1
11.试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同,则显示“MATCH”,若不相同则显示“NOMATCH”。
DATA SEGMENT
STRING1 DB'ABCDEFGHIJKLMNO'
STRING2 DB'ABCDEFDDDDDD'
MSG1 DB'MATCH','$'
MSG2 DB'NOMATCH','$'
DATA ENDS
CODESEGMENT
ASSUME CS:
CODE, DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEA SI,STRING1
LEA DI,STRING2
MOVCX,15
CLD
REPE CMPSB
JZ MATCH ;相等
LEA DX, MSG2
JMP DISPLAY
MATCH:
LEA DX,MSG1
DISPLAY:
MOVAH,09H
INT 21H
MOVAX,4C00H
INT 21H
CODEENDS
END START
16.数据段中已定义了一个有n个字数据的数组M,试编写程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中。
DATASEGMENT
n EQU 6
M DW -66,33,55,-89,28,311
DW ?
DB ?
DATAENDS
START:
MOVAX,DATA
MOVDS,AX
LEA BX,M
MOVCX,n
MOV SI,0
XORAX,AX
MOV[BX][2*n],AX
NEXT:
MOVAX,[BX][SI]
OR AX,AX
JNS L1
NEG AX
L1:
CMP [BX][2*n],AX
JG L2
MOV [BX][2*n],AX
MOV [BX][2*(n+1)],SI
L2:
INC SI
INC SI
DECCX
JNZNEXT
18.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。
试编制一程序,把既在A中又在B中出现的整数存放于数组C中。
DATASEGMENT
A DW 11,-22,33,88,-55,-67,306,39,55,-90
DW 28,311,65,887,911
B DW 18,25,31,88,-55,-65,188,30,-15,77
DW 252,54,102,201,87,-94,-22,-33,911,306
C DW 15DUP(0)
DATAENDS
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEA SI,A
LEA BX,C
NEXT:
LEADI,B
CLD
MOVCX,20
MOVAX,[SI]
REPNESCASW
JNZ NOTFOND
MOV[BX],AX
INCBX
INCBX
NOTFOND:
INCSI
INCSI
CMPSI,30
JL NEXT
23.编写程序,将字节变量BVAR中的无符号二进制数(0~FFH)转换为BCD数,在屏幕上显示结果。
DATASEGMENT
BVAR DB 165
BCD DB 3DUP(0) ;转换后以3位ASCII码保存
DB '$'
DATAENDS
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOV AL,BVAR
LEA BX,BCD
MOV DI, 2
MOV CL,10
NEXT:
MOV AH,0
DIV CL
OR AH,30H ;余数转换为ASCII码
MOV [BX+DI], AH
DEC DI
CMP AL,0
JG NEXT
LEA DX,BCD
MOV AH,09H
INT 21H ;显
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 计算机 原理 课后 习题 答案