您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 微型计算机技术-陈慈发-微机原理-习题-详解
第一章微型计算机概论1.12以下十进制数对于的八位二进制补码是怎样表示的?(1)102[102]补=01100110B(2)34[34]补=00100010B(3)96[96]补=01100000B(4)-100[-100]原=11100100B[-100]反=10011011B[-100]补=10011100B(5)-64[-64]原=11000000B[-64]反=10111111B[-64]补=11000000B(6)0[0]补=00000000B1.14为什么我们会用16进制表示数据?请将下列十进制数转换成对应的十六进制数。(1)354=162H(2)102=66H(3)64=40H(4)256=100H(5)127=7FH(6)32=20H(7)135=87H(8)67=43H1.15现有如下十进制数,将其转换成对应的二进制数。(1)34.5=10010.1B(2)20.125=10100.001B(3)17.12=10001.0001B(4)100.4=1100100.01B(5)50.05=110010.00001B(6)19.3=10011.01B1.16将下列十六进制数表示成二进制数。(1)0FFH=11111111B(2)34H=00110100B(3)67H=01100111B(4)4EH=01001110B(5)90H=10010000B(6)4DH=01001101B(7)5AH=01011010B1.17请写出以下补码表示的二进制数真值。[X]补=1000000000000000BX=-32768[Y]补=1111111111111111B[Y]反=1111111111111110B[Y]原=1000000000000001BY=-1[Z]补=0111111111111111BZ=32767[W]补=1111000000000000B[W]反=1110111111111111B[W]原=1001000000000000BW=-4096[Q]补=0100000000000000BQ=16384[P]补=1000000000000001B[P]反=1000000000000000B[P]原=1111111111111111BP=-327671.20请判断以下八位二进制数补码运算是否会产生溢出,或者产生进位,为什么?(1)-23+78[-23]补+[78]补=E9H+4EH=(1)37H无溢出,有进位(2)-45-92[-45]补+[-92]补=D3H+A4H=(1)77H有溢出,有进位(3)89+30[89]补+[30]补=59H+1EH=77H无溢出,无进位(4)78-52[78]补+[-52]补=4EH+CCH=(1)1AH无溢出,有进位(5)83-(-30)[83]补+[30]补=53H+1EH=71H无溢出,无进位(6)126-(-34)[126]补+[34]补=7EH+22H=A0H有溢出,无进位(7)108+34[108]补+[34]补=6CH+22H=8EH有溢出,无进位1.22设有X=80H,Y=79H,Z=88H,在下述情况下比较三个数的大小。(1)三数均为无符号数YXZ(2)三数均为有符号数(补码)[X]补=10000000BX=-10000000B(负数)[Y]补=01111001BY=01111001B(正数)[Z]补=10001000B[Z]反=10000111B[Z]原=11111000BZ=-01111000B(负数)XZY(3)三数均为压缩BCD码X=80Y=79Z=88YXZ(4)三数均为有符号数(移码)[X]移=10000000BX=[X]移-01111111B=00000001B(正数)[Y]移=01111001BY=[Y]移–01111111B=-00000110(负数)[Z]移=10001000BZ=[Z]移–01111111B=00001001(正数)YXZ第三章指令3.2什么是机器码?什么是助记符?什么是操作码?什么是操作数?不同指令的机器码字节数都相同吗?3.3什么是寻址?什么是寻址方式?操作数可能在哪些地方?对应的操作数名称和寻址方式名称分别是什么?3.416位操作数在存储器中存放的规则是什么?什么叫“低对低、高对高”?3.7指令中寻址存储器操作数使用物理地址还是逻辑地址?逻辑地址转换成物理地址的算法是什么?在指令中要确定一个存储器操作数应该提供哪三种信息?3.8写出存储器寻址方式中有效地址EA的通式。简单归纳段寄存器的默认规则。解:3.2:机器码:它指的是将硬件序列号经过一系列加密、散列形成的一串序列号,即使指令的二进制编码。助记符:是便于人们记忆、并能描述指令功能和指令操作数的符号操作码:组成机器指令的一部分用来说明指令的性质和功能。操作数:用来说明操作的对象。可以是具体的数值、寄存器或存储器地址。不同指令的机器码字节数不一样。3.3:寻址:寻找操作数会操作数的地址寻址方式:寻找操作数地址的方法即为寻址方式。对应的操作数名称和寻址方式名称见下表:操作数的位置操作数名称寻址方式名称在指令中立即数立即寻址在寄存器中寄存器操作数寄存器寻址在存储器中存储器操作数存储器寻址在I/O端口中I/O操作数I/O端口寻址3.4:16位操作数在存储器中存放的规则是:低字节在低地址中,高字节在高地址中,即所谓的低对低、高对高。3.7指令中寻址存储器操作数使用的是逻辑地址。逻辑地址转换成物理地址的算法是:段地址x16+偏移地址=物理地址在指令中要确定一个存储器操作数要提供三种信息:段地址、偏移地址和数据类型。3.8存储器寻址方式中有效地址EA的通式:EA=()基址+()地址+DISP偏移量段寄存器的默认规则:如果有效地址的表达式中有基址寄存器BP则默认堆栈段SS,其他一律默认数据段DS。3.9设段寄存器DS=1000H,SS=2000H,ES=3000H,通用寄存器BX=4000H,BP=5000H,SI=6000H,DI=70000H。在下列各指令中指出存储器操作数的寻址方式,求出有效地址EA、物理地址PA、并分别用物理地址和逻辑地址说明指令执行结果。(1)MOVCX,[2300H](2)MOVBYTEPTR[BX],8FH(3)MOVDH,[BP+3000H](4)MOVES:[SI+1210H],AX(5)MOV[BX+DI+50H],AX(6)INCWORDPTR[BX+SI]解:(1)MOVCX,[2300H]直接寻址;数据段中偏移地址为2300H所对应的字送CX中。有效地址EA=2300H,物理地址PA=DS*16+EA=10000H+2300H=12300H执行结果:(12300H)→CL,(12301H)→CH(2)MOVBYTEPTR[BX],8FH寄存器间接寻址;立即数8FH,送入数据段偏移地址为BX所对应的字节中。有效地址EA=BX=4000H,物理地址PA=DS*16+EA=10000H+4000H=14000H执行结果:8FH→(14000H)(3)MOVDH,[BP+3000H]基址寻址;数据段中偏移地址为BP内容与3000H之和所对应的字节送至DH有效地址EA=BP+3000H=8000H物理地址PA=SS*16+EA=20000H+8000H=28000H执行结果:(28000H)→DH(4)MOVES:[SI+1210H],AX变址寻址;AX内容送入数据段中偏移地址SI与1210H之和所对应的字中有效地址EA=SI+1210H=6000H+1210H=7210H物理地址PA=ES*16+EA=3000H*16+7210H=37210H执行结果:AL→(37210H),AH→(37211H)(5)MOV[BX+DI+50H],AX基址变址寻址;AX内容送入数据段中偏移地址为BX内容与DI内容及50H内容之和所对应的字节中有效地址EA=BX+DI+50H=4000H+70000H+50H=74050H物理地址PA=DS*16+EA=1000H*16+74050H=84050H执行结果:AL→(84050H)(6)INCWORDPTR[BX+SI]基址变址寻址;堆栈中偏移地址为BX内容与SI内容所对应的字加1有效地址EA=BX+SI=4000H+6000H=A000H物理地址PA=DS*16+EA=1000H*16+A000H=1A000H执行结果:1A000H中存放的字的值加13.10分别说明指令MOVAX,2000H和指令MOVAX,[2000H]以及指令MOVAX,BX和指令MOVAX,[BX]的区别。解:MOVAX,2000H将立即数2000H送入寄存器AXMOVAX,[2000H]将数据段中偏移地址为2000H的数据送入AX;MOVAX,BX将寄存器BX操作数传入AXMOVAX,[BX]将数据段中偏移地址为BX的内容所对应的字送入AX3.11指出下列指令中源操作数的寻址方式。(1)MOVBL,0F9H(2)ADD[BX],SI(3)SUBCL,[4000H](4)CMPDX,[SI](5)ANDAL,[BX+1](6)ORBP,[DI+2100H](7)XORAX,[BP+SI](8)MOVCX,300解:(1)MOVBL,0F9H立即寻址(2)ADD[BX],SI寄存器寻址寻址(3)SUBCL,[4000H]直接寻址(4)CMPDX,[SI]寄存器间接寻址(5)ANDAL,[BX+1]基址寻址(6)ORBP,[DI+2100H]变址寻址(7)XORAX,[BP+SI]基址变址寻址(8)MOVCX,300立即寻址3.12下列指令都是非法的,指出各指令错在哪里?(1)MOVSI,AH(2)MOV70H,BL(3)MOVCX,F123H(4)MOV[BX],6AH(5)MOVES,5000H(6)MOV[DI],[3000H](7)MOVDS,SS(8)MOVCS,AX(9)MOVAL,[CX](10)MOV[BX+BP],DX(11)MOVBH,[SI+DI+2](12)PUSHAL(13)LEAAX,BX(14)LDSBL,[5100H](15)INAH,DX(16)OUT288H,AL(17)ADD[2400H],1234H(18)XOR[2500R],[BX+10H](19)INC[SI](20)MUL10(21)IDIV[BP+DI+1300H](22)SALAL,2解:(1)MOVSI,AH两个操作数字长不一致(2)MOV70H,BL立即数不能做目的操作数(3)MOVCX,F123H十六进制的数以字母打头时前必须补0(4)MOV[BX],6AH两个操作数的字长不确定(5)MOVES,5000H立即数不能直接送段寄存器(6)MOV[DI],[3000H]两个操作数不能存储器操作数(7)MOVDS,SS段寄存器不可相互传送数据(8)MOVCS,AXCS不能做目的操作数(9)MOVAL,[CX]CX不能用作寄存器间接寻址(10)MOV[BX+BP],DX存储器寻址方式中表示有效地址不能同时为两个基址寄存器(11)MOVBH,[SI+DI+2]存储器寻址方式中表示有效地址不能同时为两个变址寄存器(12)PUSHAL入栈出栈操作必须以字为单位,AL应为AX(13)LEAAX,BXLEA指令中源操作数必须为存储器寻址方式应为[BX](14)LDSBL,[5100H]LDS指令中目的操作数必须为16位的通用寄存器(15)INAH,DXIN指令中的目的操作数只能是AL或AX(16)OUT288H,AL输入输出指令中端口地址应为16位,必须先送给DX;应为MOVDX,288HOUTDX,AL(17)ADD[2400H],1234H两个操作数的字长不确定(18)XOR[2500R],[BX+10H]两个操作数不能同时为内存操作数(19)INC[SI]操作数的字长不确定(20)MUL10MUL指令的操作数不能为立即数(21)IDIV[BP+DI+1300H]操作数的字长不确定(22)SALAL,2移位次数大于1时必须
本文标题:微型计算机技术-陈慈发-微机原理-习题-详解
链接地址:https://www.777doc.com/doc-6440589 .html