习题一1 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数11010011,01110111,10000011,00101111 ,10101010查看正确答案无符号数: 11010011=211=D3H,01110111=119=77H,10000011=131=83H,00101111=47=2FH,10101010=170=AAH带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H,00101111=+47=2FH,10101010= -86=AAH2 十六进制运算1A52H+4438H ,3967H-2D81H,37H×12H ,1250H×4H查看正确答案5E8AH,0BE6H,3DEH,4940H3 将十进制数变为8位补码,做运算(结果用二进制、十六进制、十进制表示)29+53,73-24,-66+82 ,-102-15查看正确答案00011101+00110101=01010010=52H=8201001001+11101000=00110001=31H=4910111110+01010010=00010000=10H=1610011010+11110001=10001011=8BH= -1174 用压缩BCD码计算(结果用二进制、BCD码、十进制表示)29+53,73-24,66+18 ,132+75查看正确答案00101001+01010011=01111100+00000110=10000010=82H=8201110011-00100100=01001111-00000110=01001001=49H=4901100110+00011000=01111110+00000110=10000100=84H=84 0000000100110010+01110101=0000000110100111+00000110=0000001000000111=0207H=2075 符号位扩展(字节扩展为字,字扩展为双字)20A3H,94H ,3456H ,7FH ,EC00H查看正确答案000020A3H,FF94H,00003456H,007FH,FFFFEC00H6 若机器字长为16位,其无符号数表示范围是多少?带符号数表示范围是多少?分别用十进制和十六进制表示。
查看正确答案无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH7 写出下列十六进制数所能代表的数值或编码:(1)38H (2)FFH (3)5AH (4)0DH(1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码8 将下列十进制数分别转换为二进制、十六进制、二进制补码、压缩BCD码和ASCII码:(1)108 (2)46 (3)-15 (4)254查看正确答案(1) 108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码31 3038H(2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H(3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H(4) 254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD码000000100 1010100,ASCII码323534H9 写出下列算式的二进制运算结果,标志位CF、SF、ZF、OF分别是什么值?(1)56+63 (2)83-45 (3)-74+29 (4)-92-37查看正确答案(1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0(3) -74+29=11010011B,CF=0,SF=1,ZF=0,OF=0(4) -92-37=01111111B,CF=1,SF=0,ZF=0,OF=110 查表,指出ASCII码0DH、0AH、07H、1BH、20H、40H、50H、70H对应的控制字符。
查看正确答案回车、换行、响铃、ESC键、空格键、@、P、p习题二1 写出冯·诺依曼计算机的基本特点。
2 如何解决内存速度与CPU速度不匹配问题。
3 写出计算机总线的分类与作用。
4 简述8086CPU寄存器的分组及各自的作用。
5 标志寄存器中都有哪些标志位与计算结果有关?6 简述逻辑地址与物理地址的概念,两者的关系。
7 存储器为什么要分段?如何分段。
8 8086系统把存储器分为哪四种类型的段?各自的特点是什么。
9 8086CPU的地址线为20根,寻址空间为1MB。
最少可划分为多少个逻辑段?最多呢?查看正确答案最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)10 在四种类型的段中通常使用哪些寄存器表示逻辑地址?CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP11 字节单元和字单元如何区分?若给出一个地址,如何知道要访问的是字节单元还是字单元?查看正确答案字节单元保存8位数,字单元保存16位数。
根据源操作数的属性确定要访问的是字节单元还是字单元。
12 偶地址单元和奇地址单元在保存数据上有区别吗?查看正确答案对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。
13 有一个32K字节的存储区,首地址是3302:5AC8H,写出其首单元和末单元的物理地址。
查看正确答案首单元的物理地址=38AE8H,末单元的物理地址=38AE8H+7FFFH=40AE7H14 什么是有效地址?如何获得有效地址。
15 存储单元地址和内容表示如下,请画出存储单元存放形式。
(1) (1280A)=3456H (2) (20021H)=4DH (3) (33450H)=37A520D1H16 根据逻辑地址计算出物理地址,并解释逻辑地址与物理地址的对应关系。
(1) 2389:3DE9H (2) 1230:EC92H (3) 14D9:C202H查看正确答案(1)物理地址=27679H (2) 物理地址=20F92H (3) 物理地址=20F92H(2)和(3)的物理地址是一样的。
说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元上。
17 给出段地址和偏移地址如下,计算出对应的物理地址。
(CS)=54C3H,(ES)=2569H,(DS)=1200H,(SS)=4422H,(BX)=5678H,(SP)=9945H,(IP)=0E54H,(DI)=63B1H查看正确答案代码段CS:IP的物理地址=55A84H 堆栈段SS:SP的物理地址=4DB65H数据段DS:BX的物理地址=17678H 附加段ES:DI的物理地址=2BA41H18 已知堆栈区大小为512字节,栈底单元的物理地址为15230H。
将两个字入栈保存后,当前栈指针所指单元的物理地址是多少?堆栈区中还能保存多少个数据?查看正确答案当前栈指针所指单元的物理地址是1522CH。
堆栈区中还能保存254个字。
19 写出修改当前数据段200H开始的数据区数据的DEBUG命令。
查看正确答案执行E 20020 对当前代码段从100H开始反汇编的DEBUG命令是什么?查看正确答案执行U 10021 在DEBUG下,要将寄存器CX的值修改为100H,应该执行什么命令?查看正确答案执行R CX,然后输入10022 在DEBUG下,怎样将数据段的0号~4号字节单元填入'a'、'b'、'c'、'd'?查看正确答案执行E DS:0 ‘a’ ‘b’ ‘c’ ‘d’习题三1 名词解释:零地址指令,一地址指令,二地址指令。
2 分别写出与数据有关的7种寻址方式并举例说明。
3 已知(BX)=1290H,(SI)=348AH,(DI)=2976H,(BP)=6756H,(DS)=2E92H,(ES)=4D82 H,(SS)=2030H,请指出下列指令的寻址方式,并求出有效地址EA和物理地址:MOV AX,BXMOV AX,1290HMOV AX,[BX]MOV AX,DS:[1290H]MOV AX,[BP]MOV [DI][BX],AXMOV ES:[SI],AX查看正确答案MOV AX,BX 源操作数为寄存器寻址,EA 无,物理地址无MOV AX,1290H 立即寻址,EA 无,物理地址无MOV AX,[BX] 寄存器间接寻址,EA=1290H, 物理地址=2FBB0HMOV AX,DS:[1290H] 直接寻址,EA=1290H, 物理地址=2FBB0HMOV AX,[BP] 寄存器间接寻址,EA=6756H, 物理地址=26A56HMOV [DI][BX],AX 目的操作数为基址变址寻址,EA=3C06H, 物理地址=32526HMOV ES:[SI],AX 寄存器间接寻址,EA=348AH, 物理地址=50CAAH4 寄存器间接寻址方式可以使用哪些寄存器作为间址寄存器?5 立即寻址方式和寄存器寻址方式的操作数有物理地址吗?6 什么是段超越?段超越前缀代表什么?7 请指出下列指令的错误:MOV AX,[CX]MOV AL,1200HMOV AL,BXMOV [SI][DI],AXMOV ES:[DX],CXMOV [AX],VALUEMOV COUNT,[SI]查看正确答案MOV AX,[CX] 错。
CX不能为间址寄存器MOV AL,1200H 错。
立即数超出8位寄存器范围MOV AL,BX 错。
两个操作数不匹配MOV [SI][DI],AX 错。
两个变址寄存器不能在一起MOV ES:[DX],CX 错。
DX不能为间址寄存器MOV [AX],VALUE 错。
AX不能为间址寄存器MOV COUNT,[SI] 错。
两个操作数不能都是存储单元8 根据题目要求,写出相应的汇编指令:(1)把BX寄存器的值传送给AX(2)将立即数15送入CL寄存器(3)用BX寄存器间接寻址方式将存储单元中的字与AX寄存器的值相加,结果在AX中(4)把AL中的字节写入用基址变址寻址的存储单元中(5)用SI寄存器和位移量VALUE的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器AX (6)将AX中的数与偏移地址为2000H存储单元的数相减,结果在AX中查看正确答案(1) MOV AX,BX (2) MOV CL,15 (3) ADD AX,[BX](4) MOV [BX+SI],AL (5) MOV AX,VALUE[SI] (6) SUB AX,DS:[2000H]9 写出用下列寻址方式将存储单元X中的第3个字取出,AX与其相加再放入Y单元的指令序列。