计算机原理与应用--习题实验清华大学自动化系2014年2月目 录习题及思考题 1计算机原理及应用实验 10实验室纪律 10实验一 DEBUG的使用 10实验二 四则运算 15实验三 子程序及宏的使用 17实验四 中断控制及计数/定时电路应用 19实验五 串行通信 23实验六 D/A及A/D 转换 24实验七 计算机原理及应用综合实验 29附录一 DEBUG命令简介 33附录二 TPC-USB通用微机接口实验系统 38附录三 实验台TPC_USB集成软件开发环境 40附录四 A/D转换电路补充举例 42习题及思考题1. 数字电子计算机自第一台产生至今,共可分成几代?分代的标准主要根据什么?2. 微型计算机主要根据其使用的微处理器什么指标进行分代?至今可分为哪几代?3. 将下列二进制数转换为十进制数: 〈1〉01101100B 〈2〉00101101B 〈3〉0.011B 〈4〉0.01101B 〈5〉1001.1001B 4. 将下列十进制数转换为二进制数: 〈1〉17D 〈2〉121D 〈3〉0.4375D 〈4〉0.59375D 〈5〉125.125D 5. 将下列数转换为八进制数:〈1〉175D 〈2〉32D 〈3〉1785D 〈4〉1110000.11101B 〈5〉10000111.001001101B 6. 将下列八进制数转换为二进制数: 〈1〉305.64Q 〈2〉17.322Q 〈3〉106.274Q 7. 将下列各数转换为十六进制数: 〈1〉11010100B 〈2〉00111100B 〈3〉0.0001101B 〈4〉1110101.101111B 〈5〉783D 〈6〉5372D 〈7〉9570D 〈8〉9587D 8. 将下列十六进制数转换为二进制数: 〈1〉2B7CH 〈2〉2EFDH 〈3〉1AB0H 〈4〉0.56F8H 〈5〉4DE.ACH 9. 将下列十六进制数转换为十进制数: 〈1〉A8CH 〈2〉FFH 〈3〉1000H 〈4〉F001H 〈5〉FFFFH 10. 列竖式将下列二进制数相加: 〈1〉00001101+10010110 〈2〉10110110+00101010 〈3〉10001011+00101111 11. 列竖式将下列二进制数直接相减(不用变成补码相加): 〈1〉10110100-00001001 〈2〉10101010-10100001 〈3〉11001001-0101011112. 将下列十进制数分别用八位原码、反码和补码表示: 〈1〉+15 〈2〉-15 〈3〉-64 〈4〉+117 〈5〉-6 〈6〉-120 13. 求下列补码数的十进制值: 〈1〉00110011 〈2〉10101011 〈3〉10000101 〈4〉00000101 〈5〉11111011 〈6〉00000000 〈7〉11111111 〈8〉10000000 14. 用补码表示法列竖式直接计算下列各题: 〈1〉-75+(-6) 〈2〉-84-(-15)15. 已知X,Y的值如下,求 [X ]补, [Y ]补, [X+Y ]补, [X-Y ]补,并说明结果有无溢出,设补码都用八位表示,减法仍直接用减运算。
〈1〉X=45,Y=85 〈2〉X=45,Y=-85 〈3〉X=-45,Y=85 〈4〉X=-45,Y=-85 16. 查ASCII代码表,将下列字符转换为8位ASCII代码,并用十六进制表示: 〈1〉5 〈2〉A 〈3〉a 〈4〉= 〈5〉?〈6〉* 17. 查ASCII代码表,将下列7位ASCII代码,转换为相应字符(假设最高位都为0):〈1〉0100001 〈2〉0111001 〈3〉1010111 〈4〉1100101 〈5〉1111011 18. 写出下列存储器地址的段基址,偏移地址和物理地址: 〈1〉2314H:0035H 〈2〉1FD0H:000AH 〈3〉60ADH:DDF6H 19. 某一存储单元的物理地址为12345H,试完成下列不同的逻辑地址表示: 〈1〉1234H: H 〈2〉 H:0345H 20. 假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量VAL的偏移地址为0050H,试指出下列指令的源操作数是什么寻址方式?若是内存操作数则计算它的物理地址(用十六进制数表示)。
〈1〉MOV AX,0ABH 〈2〉MOV AX,BX 〈3〉MOV AX, [100H ] 〈4〉MOV AX, [BP+10H ]〈5〉MOV AX,ES: [BX ]〈6〉MOV AX, [SI ] 〈7〉MOV AX, [BP ] 〈8〉MOV AX,VAL [BP ] 〈9〉MOV AX,1100H [BX ] [SI ]21. 假定有关寄存器及存储单元的内容如下:(DS)=2000H, (BX)=0100H, (SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH, (21202H)=0B7H,(21203H)=65H,试指出下列各条指令执行完后AX寄存器的内容 〈1〉MOV AX,1200H 〈2〉MOV AX,BX 〈3〉MOV AX, [1200H ] 〈4〉MOV AX, [BX ] 〈5〉MOV AX,1100H [BX ] 〈6〉MOV AX,1100H [BX ] [SI ] 22. 指出下列指令的错误: 〈1〉MOV AH,BX 〈2〉MOV [BX ], [SI ] 〈3〉MOV AX, [SI ] [DI ] 〈4〉MOV CS,AX 23. 用几条指令完成下列功能: 〈1〉 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。
〈2〉 用寄存器BX和SI的基址变址寻址方式,把存储器中的一个字节与AL寄存器的内容相加,结果存入AL寄存器中 〈3〉 用寄存器BX和位移量0B2H的基址寻址方式,把存储器中的一个字与(CX)相加,结果送回存储单元中 〈4〉 用位移量0524H的直接寻址方式,把存储器中的一个字与数2A59H相加,并把结果送回存储单元中 〈5〉 把数0B5H与(AL)相加,结果送回AL中 24. 写出完成下列功能的程序段:〈1〉 传送25H到AL寄存器;〈2〉 将AL的内容乘以2;〈3〉 传送15H到BL寄存器;〈4〉 AL的内容乘以BL的内容问最后结果(AX)=?25. 设段寄存器(SS)=3A4BH,程序中要求堆栈长度为200个字节,试计算出堆栈指针SP的初始值(即堆栈中没有数据时)和SP初始值指向的物理地址 26. 若(AL)=96H, (BL)=12H,指令MUL BL 和IMUL BL分别执行后,它们的结果为何值?OF, CF为何值?27. 指出下列指令哪些是错误的,若有错误请说明错在何处? 〈1〉CMP 15H,BX 〈 2〉CMP [2000H ],25 〈3〉CMP [100H ],[200H ] 〈4〉CMP AX, [3050H ] 28. 求62A0H分别与下列各数相加的结果,并根据结果设置标志位SF,ZF和OF的值。
〈1〉1234H 〈2〉4321H 〈3〉CFA0H 〈4〉9D60H 29.〈1〉用一条逻辑运算指令使AX清零 〈2〉用一条逻辑指令使DX的高3位为1,其余位不变 〈3〉用一条逻辑指令使BL的低4位为0,其余位不变 〈4〉用一条逻辑指令使AX中各位与BX对应位不相同的都变成1,相同的位不变 30. 用两条移位及循环移位指令,将AL中的各位按相反的顺序排列到AH中 31. 假定(DX)=10111001B,(CL)=03,(CF)=1,试确定下列各条指令分别执行后,DX中的值〈1〉SHR DX, 1 〈2〉SAR DX,CL 〈3〉SHL DX,CL 〈4〉ROR DX,CL 〈5〉ROL DL, CL 〈6〉SAL DH,1 〈7〉RCL DX,CL 〈8〉RCR DL,1 32. 用两条移位及循环指令将DX:AX中的双字长无符号数乘以2 33. 下列程序执行后,BX中的内容是什么?MOV CL, 3 MOV BX, 0B7H ROL BX, 1 ROR BX, CL34. 在下列程序段中,L1~L5表示5个程序标号如果AX和BX的内容取列表中5组不同的数值,试分别分析该程序执行完成后,各自转向哪里?: AXBX〈1〉147B80DC〈2〉 B56854B7〈3〉 42C8608D〈4〉 D0239FD0〈5〉 94B7B568 ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP L5 35. 指令CMP AX,BX后面跟着一条格式为J...L1的条件转移指令,其中...可以是B,NB,BE,NBE,L,NL,LE,NLE中的任一个,如果AX和BX的内容给定如下: AX BX AX BX 〈1〉 1F52 1F52 〈5〉 FFC5 FF8B 〈2〉 88C9 88CA 〈6〉 09A0 1E97 〈3〉 FF82 007E 〈7〉 8AEA FC29 〈4〉 58BA 020E 〈8〉 D367 32A6 问以上8条转移指令中的哪几条将引起转移到L1? 36 .两个4位压缩的BCD数,存放在存储器中的地址为ALPHA和BETA,编写程序求两个数的和,结果存入ALPHA单元。
37. 两个2为压缩的BCD数,存放在存储器中的地址为ALPHA和BETA,编写程序求两个数的和,结果存入ALPHA单元38. 编写4字节ASCII码数“3785”与1字节ASCII码数”5”相乘的程序39. 比较AX,BX,CX中带符号补码数的大小,将其最大者放在AX中,试编写此程序 40. 编写程序,将BLOCK中的100个字节数据的位置颠倒过来(即第1个字节和第100个字节的内容互换,第2个字节和第99个字节的内容互换,…) 41. 编写程序,求AX寄存器中有多少个“1”,并将其个数存入CL寄存器中 42. 在存储器中从物理地址15A00H开始存有100个带符号数,编写程序统计其中有多少个负数?将其个数存入CL寄存器中43. 下列变量各占多少字节?〈1〉ALPHA DW 25H,36H 〈2〉BETA DB 4 DUP(?) 〈3〉GAMMA DD 10 DUP(1250H,12345678H) 〈4〉COUNT DB 5 DUP(4 DUP(3,2,’ABC’)) 44. 下列指令各完成什么功能? 〈1〉MOV AX,00FFH AND 122H+2233H 〈2〉MOV AL,15 。