李伯成《微机原理》习题 第四章
微机原理习题解答第四章-

第四章1.在下列程序运行后,给相应的寄存器及存储单元填入运行的结果: MOV AL,10HMOV CX,1000HMOV BX,2000HMOV [CX],ALXCHG CX,BXMOV DH,[BX]MOV DL,01HXCHG CX,BXMOV [BX],DLHLT解:寄存器及存储单元的内容如下:AL=10HBL=00HBH=20HCL=00HCH=10HDL=01HDH=10H(1000H=10H(2000H=01H2.要求同题4.1,程序如下:MOV AL,50HMOV BP,1000HMOV BX,2000HMOV [BP],ALMOV DH,20HMOV [BX],DHMOV DL,01HMOV DL,[BX]MOV CX,3000HHLT解:寄存器及存储单元的内容如下: BL=00HBH=20HCL=00HCH=30HDL=20HDH=20HBP=1000H(1000H=50H(2000H=20H3.自1000H单元开始有一个100个数的数据块,若要把它传送到自2000H开始的存储区中去,可以采用以下三种方法实现,试分别编写程序以实现数据块的传送。
(1不用数据块传送指令。
(2用单个传送的数据块传送指令。
(3用数据块成组传送指令。
解:(1LEA SI,1000HLEA DI,2000HMOV CX,100L1: MOV AX,[SI]MOV [DI],AXLOOP L1HLT(2LEA SI,1000HLEA DI,2000HMOV CX,100CLDL1:MOVSBLOOP L1HLT(3LEA SI,1000HLEA DI,2000HMOV CX,100CLDREP MOVSBHLT6.编写一个程序,把自1000H单元开始的100个数传送至1050H开始的存储区中(注意:数据区有重叠。
解:LEA SI,1000HLEA DI,1050HADD SI,63HADD DI,63HMOV CX,100STDREP MOVSBHLT7.自0500H单元开始,存放着100个数。
微机原理第四章课后习题答案

第四章课后作业(6—27)6.试按下列要求分别编制程序段。
(1)把标志寄存器中符号位SF置“1”。
(2)寄存器AL中高、低四位互换。
(3)由寄存器AX、BX组成一个32位带符号数(AX中存放高16位),试求这个数的负数。
(4)现有三个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下,实现(A)+(B) C。
(5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1 形成奇数)。
答:(1) LAHFOR AH,80HSAHF(2) MOV CL,4ROL AL,CL(3) MOV CX,0NEG BXJC CHGJMP GOCHG: MOV CX,1GO: NEG AXSUB AX,CX(4) MOV CL,AMOV AL,BMOV X,ALCHECK:INC XDEC CLJNZ CHECK(5) OR CX,0001H7.试给出下列各指令的机器目标代码。
(1)MOV BL,12H [SI](2)MOV 12H [SI],BL(3)SAL DX,1(4)AND 0ABH [BP] [DI],1234H答:(1)100010 1 0 01 011 100 00010010=8A5C12H(2)100010 0 0 01 011 100 00010010=885C12H(3)110100 0 1 11 100 010=0D1E2H(4)100000 0 1 10 100 011 10101011 00000000 00110100 00010010=81A3AB003412H8.执行下列指令:STR1 DW ‘AB’STR2 DB 16DUP(?)CNT EQU $-STR1MOV CX,CNTMOV AX,STR1HLT执行完成之后,寄存器CL的值是多少?寄存器AX的值是多少?答:因为CNT=16+2=18,所以CX=18=0012H,所以CL=12H=0001,0010;AX中装入的是‘AB’的ASCII码值,其中‘A’在高位AH中,‘B’在低位AL 中,所以AX=4142H=0100,0001,0100,0010。
微机原理第四章练习题及解

微机原理第四章练习题及解一:单项选择题●汇编源程序文件的扩展名是( C )。
A:*.LST B:*.OBJ C:*.ASM D:*.EXE●源程序文件汇编后的目标文件的扩展名是( B )。
A:*.LST B:*.OBJ C:*.ASM D:*.EXE●目标文件连接后的可执行文件的扩展名是( D )。
A:*.LST B:*.OBJ C:*.ASM D:*.EXE●下列可作为标识符用的字符串是( C )。
A:MOV B:ZF C:FAH D:PTR●下列为寄存器名的字符串是( B )。
A:ZP B:BP C:AP D:CP●下列为状态标志的字符串是( A )。
A:ZP B:BF C:DF D:TF●下列为控标志的字符串是( D )。
A:ZP B:SF C:OF D:TF●下列为指令助记符的字符串是( C )。
A:ADCC B:AAAA C:SUB D:POOP●下列为运算符的字符串是( B )。
A:ADC B:PTR C:OAG D:LOOP●定义字类型的伪指令符是( B )。
A:DB B:DW C:DD D:DQ●说明字节类型的伪指令符是( C )。
A:WORD B:DWORD C:BYTE D:SHOR●返回变量段属性的伪指令符是( B )。
A:OFFSET B:SEG C:TYPE D:SIZE●定义过程结束的伪指令符是( C )。
A:END B:ENDS C:ENDP D:ENDM●下列为段定义的伪指令是( B )。
A:PROC B:SEGMENT C:ASSUME D:STRUC●下列为符号定义的伪指令是( B )。
A:ORG B:EQU C:STR D:RET二:填空题●将指令助记符翻译为指令机器码的过程称为(汇编)。
●汇编程序的功能是输入扩展名为ASM的(汇编源程序)文件,输出扩展名为OBJ的(目标代码)文件和扩展名为LST的(列表)文件。
●汇编源程序中的保留字类型有(寄存器名)、(标志名)、(指令助记符)、(伪指令符)和(运算符)。
微机原理习题答案1234章

第1章数制与码制1.将下列十进制数转换成二进制数:(1)58;(2)67.625; (3)5721;解:(1)58D = 0011 1010B(2)67.625D = 0100 0011.1010B(3)5721D = 0001 0110 0101 1001B2.将二进制数变换成十六进制数:(1)1001 0101B;(2)11 0100 1011B;(3)1111 1111 1111 1101B;(4)0100 0000 10101B;(5)0111 1111B;(6)0100 0000 0001B解:(1)1001 0101B = 95H(2)11 0100 1011B = 34BH(3)1111 1111 1111 1101B = FFFDH(4)0 1000 0001 0101B = 815H(5)0111 1111B = 7FH(6)0100 0000 0001B = 401H3.将十六进制数变换成二进制数和十进制数:(1)78H;(2)0A6H;(3)1000H;(4)0FFFFH解:(1)78H = 120D = 0111 1000B(2)0A6H = 166D = 1010 0110B(3)1000H = 4096D = 0001 0000 0000 0000H(4)0FFFFH = 65535D = 1111 1111 1111 1111B4.将下列十进制数转换成十六进制数:(1)39;(2)299.34375;(3)54.5625解:(1)39D = 27H(2)299.34375D = 12B.58H(3)54.5625D = 36.9H5.将下列二进制数转换成十进制数:(1)10110.101B;(2)10010010.001B;(3)11010.1101B解:(1)10110.101B = 22.625D(2)10010010.001B = 146.125D(3)11010.1101B = 26.8125D6.计算(按原进制运算):(1)10001101B+11010B;(2)10111B+11100101B;(3)1011110B-1110B;(4)124AH+78FH;(5)5673H+123H;(6)1000H-F5CH;解:(1)10100111B(2)11111100B(3)1010000B(4)19D9H(5)5796H(6)A4H7.已知a=1011B, b=11001B, c=100110B, 按二进制完成下列运算,并用十进制运算检查计算结果:(1)a+b; (2)c-a-b; (3)a×b; (4)c÷b解:a=1011B=11D b=11001B=25D c=100110B =38D(1)100100B = 36D(2)10B = 2D(3)1 0001 0011B=275D(4)1B 余1101B= 13D8.已知a=00111000B, b=11000111B, 计算下列逻辑运算:(1)a AND b; (2)a OR b; (3)a XOR b; (4)NOT a解:(1)00000000B(2)11111111B(3)11111111B(4)11000111B9.设机器字长为8位,写出下列各数的原码和补码:(1)+1010101B;(2)-1010101B;(3)+1111111B;(4)-1111111B;(5)+1000000B;(6)-1000000B解:(1)原01010101B 补01010101B(2)原11010101B 补10101011B(3)原01111111B 补01111111B(4)原11111111B 补10000001B(5)原01000000B 补01000000B(6)原11000000B 补11000000B10.写出下列十进制数的二进制补码表示(设机器字长为8位):(1)15;(2)-1;(3)117;(4)0;(4)-15;(5)127;(6)-128;(7)80解:(1)(00001111B)补(2)(11111111B)补(3)(01110101B)补(4)(00000000B)补(5)(11110001B)补(6)(01111111B)补(7)(10000000B)补(8)(01010000B)补11.设机器字长为8位,先将下列各数表示成二进制补码,然后按补码进行运算,并用十进制数运算进行检验:(1)87-73;(2)87+(-73);(3)87-(-73);(4)(-87)+73;(5)(-87)-73;(6)(-87)-(-73);解:(1)1110B=14D(2)00001110B 进位舍弃(3)10100000B=-96D 溢出(4)11110010B=-14D(5)01100000B=96D 溢出(6)11110010B=-14D12.已知a,b,c,d为二进制补码:a=00110010B, b=01001010B, c=11101001B, d=10111010B,计算:(1)a+b;(2)a+c;(3)c+b;(4)c+d;(5)a-b;(6)c-a;(7)d-c;(8)a+d-c解:(1)01111100B(2)00011011B(3)00110011B(4)10100011B(5)11101000B(6)10110111B(7)11010001B(8)11B13.设下列四组为8位二进制补码表示的十六进制数,计算a+b和a-b,并判断其结果是否溢出:(1)a=37H, b=57H; (2)a=0B7H, b=0D7H;(3)a=0F7H, b=0D7H; (4)a=37H, b=0C7H解:(1)a+b=8EH溢出,a-b=E0H未溢出(2)8EH未溢出,E0H未溢出(3)CEH未溢出,20H未溢出(4)FEH未溢出70H未溢出14.求下列组合BCD数的二进制和十六进制表示形式:(1)3251(2)12907(3)2006解:(1)0011 0010 0101 0001B = 3251H(2)0001 0010 1001 0111B = 12907H(3)0010 0000 0000 0110B = 2006H15.将下列算式中的十进制数表示成组合BCD码进行运算,并用加6/减6修正其结果:(1)38+42;(2)56+77;(3)99+88;(4)34+69;(5)38-42;(6)77-56;(7)15-76;(8)89-23解:(1) 0011 1000B + 0100 0010B = 0111 1010B 低BCD码位需要加6修正0111 1010B + 0000 0110B = 1000 0000B = 80BCD(2) 0101 0110B + 0111 0111B = 1100 1101B 高、低BCD码位都需要加6修正1100 1101B + 0110 0110B = 0001 0011 0011B=133BCD(3) 1001 1001B+1000 1000B = 0001 0010 0001B 高、低BCD码位都需要加6修正0001 0010 0001B +0110 0110B = 0001 1000 0111B=187BCD(4) 0011 0100B + 0110 1001B = 1001 1101B 低BCD码位需要加6修正1001 1101B + 0000 0110B = 1010 0011B 修正结果使高BCD码位需要加6修正1010 0011B +0110 0000B = 0001 0000 0011B = 103BCD(5) 00111000B-01000010B =(-1)1111 0110B 高 BCD码位需要减6修正(-1)1111 0110B -0110 0000B =(-1)1001 0110B=-100+96=-4BCD(6)01110111B-01010110B = 0010 0001B = 21BCD(7) 00011001B-01110110B =(-1)1001 1111B 高、低BCD码位都需要减6修正(-1)1001 1111B -01100110B =(-1)0011 1001B = -100+39 = -61BCD(8)10001001B-00100011B = 0110 0110B = 66BCD16.将下列字符串表示成相应的ASCII码(用十六进制数表示):(1)Example 1;(2)XiDian University;(3)-108.652;(4)How are you?;(5)Computer(6)Internet Web解:(1)45H,78H,61H,6DH,70H,6CH,65H,20H,31H(2)58H,69H,44H,69H,61H,6EH,20H,55H,6EH,69H,76H,65H,72H,73H,69H,74H,79H (3)2DH,31H,30H,38H,2EH,36H,35H,32H(4)48H,6FH,77H,20H,61H72H,65H,20H79H,6FH,75H(5)43H,6FH,6DH,70H,75H,74H,65H,72H(6)49H,6EH,74H,65H72H,6EH,65H,74H,20H,57H,65H,62H17.将下列字符串表示成相应的ASCII码(用十六进制数表示):(1)Hello(2)123<CR>456;(注:<CR>表示回车)(3)ASCII;(4)The number is 2315解:(1)48H,65H,6CH,6CH,6FH (2)31H,32H,33H,0DH,34H,35H,36H (3)41H,53H,43H,49H,49H (4)54H,68H,65H,20H,6EH,75H,6DH,62H,65H,72H第2章 8086 CPU 结构与功能1. 微处理器内部结构由哪几部分组成?阐述各部分的主要功能。
微机原理作业与答案第四章1

微机原理作业与答案第四章1第四章汇编语⾔程序设计4-2 下列程序执⾏后,寄存器AX,BX,CX的内容分别是多少?D SEGMENT AT 0202H;定位数据段地址ORG 0202H ;定位偏移地址DA_WORD DW 20HMOV AX,DA_WORD ;(AX)=0020HMOV BX,OFFSET DA_WORD ;(BX)=0202HMOV CL,BYTE PTR DA_WORD ;(CL)=20H(将变量DA_WORD的属性改变为字节型)MOV CH,TYPE DA_WORD ; (CH)=2(变量类型数值);(CX)=0220H4-4 试编制⼀程序,把CHAR1中各⼩写字母分别转换为对应的⼤写字母,并存放在CHAR2开始的单元中(题⽬要求:不改变CHAR1的内容)⽅法1,⼩写字母转换⼀个输出显⽰⼀个,前3种⽅法均使⽤了AL寄存器D SEGMENTCHAR1 DB "abcdefghijklmnopqrstuvwxyz"N EQU $-CHAR1;变量必须先定义后使⽤,⽽不能相反CHAR2 DB N DUP(0) ; ;不能把此句与上⼀句对调,CHAR2 DB $-CHAR1有;的同学这样写,错在哪?CHAR2 DB $-CHAR1 DUP(0)是可以的D ENDSS SEGMENT STACKDB 200 DUP(0)S ENDSC SEGMENTASSUME CS:C,DS:D,SS:S ;ASSUME是伪指令,后⾯不能写冒号START: MOV AX,DMOV DS,AX;MOV ES,AX ;只要⽤到串操作指令且DILEA SI,CHAR1 ;MOV SI,OFFSET CHAR1LEA DI,CHAR2 ; MOV DI,OFFSET CHAR2MOV CX,N ;$-CHAR1,不可以AGAIN:MOV AL,[SI]SUB AL,20H ;AND AL,5FH有的同学是这样实现的MOV AH,2INT 21H ;从屏幕显⽰INC SIINC DILOOP AGAINMOV AH,4CHINT 21H ; ;不是必须的C ENDSEND START⽅法2:使⽤通⽤数据传送指令MOVD SEGMENTCHAR1 DB ‘abcdefghijklmnopqrstuvwxyz’N EQU $-CHAR1;变量必须先定义后使⽤,⽽不能相反CHAR2 DB N DUP(0);不能把此句与上⼀句对调D ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDS ;P126(代码段和堆栈段是不可少的) C SEGMENTASSUME CS:C ,DS:D ,SS:SSTART: MOV AX,DMOV DS,AXMOV ES,AX ;只要⽤到串操作指令且DIMOV SI,0 ;LEA SI,CHAR1MOV DI,0 ;LEA DI,CHAR2MOV CX,NAGAIN: MOV AL,CHAR1[SI] ; MOV AL,[SI]SUB AL,20HMOV CHAR2[DI],AL ; MOV [DI],ALINC SIINC DI LOOP AGAINMOV AH,4CHINT 21H ;不是必须的第3种⽅法:使⽤串的读写指令LODSB STOSBD SEGMENTCHAR1 DB ‘abcdef’N EQU $-CHAR1CHAR2 DB $-CHAR1 DUP(0) D ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDS ;P126(代码段和堆栈段是不可少的) C SEGMENTASSUME CS:C,DS:D,SS:SSTART: MOV AX,DMOV DS,AXMOV ES,AXMOV SI,0 ;LEA SI,CHAR1MOV DI,0 ;LEA DI,CHAR2MOV CX,NCLD ;不写(隐含)也是0(递增)但不能STD AGAIN: LODSB ;执⾏⼀次,隐含修改SISUB AL,32STOSB ;MOV [DI],AL;执⾏⼀次, 隐含修改DI INC DI LOOP AGAIN ;LOOP指令只修改CX,不管SI,DI MOV AH,4CHINT 21H ;不是必须的C ENDSEND START第四种⽅法2006级,没有显⽰使⽤MOVSB指令D SEGMENTCHAR1 DB "abcdefghijklmnopqrstuvwxyz"N EQU $-CHAR1CHAR2 DB N DUP(0)D ENDSS SEGMENT STACKDB 200 DUP(0)ASSUME CS:C,DS:D,SS:SSTART:MOV AX,DMOV DS,AXMOV ES,AXLEA SI,CHAR1LEA DI,CHAR2MOV CX,NAGAIN:MOVSB ; SUB [SI],20HDEC DI ; MOVSBSUB BYTE PTR[DI],20H ;LOOP AGAIN 错在哪⾥?结果如何?INC DILOOP AGAINMOV AH,4CHINT 21HC ENDSEND START⽅法5: 只⽤⼀个地址指针SID SEGMENTCHAR1 DB "abcdefghijklmnopqrstuvwxyz"N EQU $-CHAR1CHAR2 DB N DUP(0) D ENDSS SEGMENT STACKDB 200 DUP(0)S ENDSC SEGMENTASSUME CS:C,DS:D,SS:SSTART:MOV AX,DMOV DS,AXMOV ES,AXMOV SI,0MOV CX,NMOV CHAR2[SI],ALINC SILOOP AGAINint 3MOV AH,4CHINT 21HC ENDSEND START有的同学按数据是由键盘录⼊的来考虑的,也可⾏,程序中还有不少问题⽅法6:由键盘输⼊⼩写字母再转换输出,回车符也占⼀个字节,输⼊需要⼩写转换成⼤写字母的内容从输⼊串的第3个元素开始D SEGMENTA DB"CHAR1",0DH,0AH,"$"B DB"CHAR2",0DH,0AH,"$"CHAR1 DB 11,?,11 DUP(0);准备输⼊10个⼩写字母CHAR2 DB 10 DUP(0)D ENDSS SEGMENT STACKDB 200 DUP(0)S ENDSC SEGMENTASSUME CS:C,DS:D,SS:SSTART:MOV AX,DMOV DS,AXMOV ES,AXMOV DX,OFFSET AMOV AH,9INT 21HLEA DX,CHAR1MOV AH,0AHINT 21H ;由键盘输⼊字符串,10个字母(显⽰),1个回车,共11个字节LEA SI,CHAR1[2]AGAIN:MOV AL,[SI]SUB AL,20HMOV [DI],ALINC SIINC DILOOP AGAIN ; 将⼩写字母字符串转换成⼤写字母字符串MOV BYTE PTR[DI],0DHINC DIMOV BYTE PTR[DI],0AHINC DIMOV BYTE PTR[DI],'$' ;必须指明数据类型MOV DX,OFFSET CHAR2MOV AH,9INT 21H ;输出'$'结尾的⼤写字母字符串int 3MOV AH,4CHINT 21HC ENDSEND START4-6在BUF地址处起,存放有100个字节的字符串,设其中有⼀个以上的“A”字符,编程查找出第⼀个“A”字符相对起始地址的距离,并将其存⼊LEN单元。
微机原理课后答案 (4)

微机原理课后答案第一章:计算机系统简介1.1 问题1.计算机硬件系统由哪些部分组成?2.什么是计算机软件系统?3.计算机的主要功能有哪些?1.2 答案1.计算机硬件系统由以下几部分组成:–中央处理器(CPU)–内存(Memory)–外部设备(包括输入设备和输出设备)2.计算机软件系统是指计算机系统中的各种软件程序的集合,包括系统软件和应用软件。
系统软件用于管理和控制计算机硬件系统的运行,例如操作系统、编译器、数据库管理系统等。
应用软件用于实现各种具体的应用功能,例如文字处理软件、图形设计软件、游戏等。
3.计算机的主要功能包括:–进行数据的输入、输出和存储。
–进行数据的处理和运算。
–运行各种软件程序,实现各种功能。
第二章:计算机的基本组成部分2.1 问题1.什么是计算机的存储器?2.什么是计算机的输入设备?3.什么是计算机的输出设备?2.2 答案1.计算机的存储器是指计算机中用于存储数据和程序的设备,包括主存储器和辅助存储器。
主存储器又称为内存,是计算机中用于存放程序和数据的临时存储区域,其容量相对较小但访问速度很快。
辅助存储器是用于永久性存储数据和程序的设备,例如硬盘、固态硬盘或者光盘。
2.计算机的输入设备是用于将外部数据或命令输入到计算机中的设备,常见的输入设备包括键盘、鼠标、扫描仪、摄像头等。
3.计算机的输出设备是用于将计算机处理后的结果或数据输出到外部的设备,常见的输出设备包括显示器、打印机、音频设备等。
第三章:计算机的运算方法3.1 问题1.什么是计算机的算术运算?2.什么是计算机的逻辑运算?3.什么是计算机的数据转移?3.2 答案1.计算机的算术运算是指计算机对数字数据进行加、减、乘、除等运算的过程。
算术运算包括整数运算和浮点数运算。
整数运算是指对整数进行计算的过程,浮点数运算是指对带有小数部分的实数进行计算的过程。
2.计算机的逻辑运算是指计算机对逻辑数据进行与、或、非等运算的过程。
逻辑运算常用于判断和决策的场景,例如判断某个条件是否为真、执行不同的分支等。
微机原理第四章习题及答案

第四章8086/8088指令系统一、选择题1、在数据传送指令中要注意:立即数只能作为( A )。
A.源操作数B.源操作数或目的操作数C.目的操作数D.源操作数和目的操作数2、对堆栈进行存取操作时需遵守的原则是( B )。
A.先进先出B.先进后出C.任意顺序D.以上都不对3、MOV AX,[BP+SI]指令源操作数隐含的段地址为( D )。
A.CS B.DS C.ES D.SS4、堆栈指针SP的作用是用来指示( C )。
A.栈底地址B.下一条要执行指令的地址C.栈顶地址D.上一条要执行指令的地址5、在指令MOV AX,0执行后,CPU状态标志位ZF的取值( D )。
A.为0 B.为1 C.不确定D.没影响6、下列寄存器组中,全部用于寄存器间接寻址方式中的为( C )。
A.AX,BX,CX,IP B.BX,BP,DS,SIC.BP,BX,SI,DI D.IP,SP,AX,BX7、若8086 CPU工作于最小方式,则执行指令OUT DX,AL时其引脚信号M /IO和DT/R的电平应是( B )。
A.低,低B.低,高C.高,低D.高,高8、执行指令MOV AX,DATA后,AX中值为变量DATA的( D )。
A.段值B.偏移量值C.数据类型值D.地址DATA单元中的值9、下列指令中,不正确的指令是。
( D )A.MOV AX,BX B.MOV AX,[BX]C.MOV AL,BL D.MOV AL,[BL]10、8086CPU在执行MOV AL,[BX]指令的总线周期内,若BX存放的内容为1010H,则BHE和A0的状态是( C )。
A.0,0 B.0,1C.1,0 D.1,111、若DF=1,执行串操作指令MOVSW时,地址指针变化方式是( D )。
A.SI=SI + 1,DI = DI + 1B.SI = SI + 2,DI = DI + 2C.SI = SI-1,DI = DI-1D.SI = SI-2,DI = DI-212、条件转移指令JNE的条件是( C )。
微机原理课后习题参考答案

微机原理课后习题参考答案第一章2、完成下列数制之间的转换。
01011100B=92D135D=10000111B 10110010B=262Q=B2H 3、组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型数。
答:组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。
组合型:254=BCD 非组合型:254=BCD 7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少?答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。
+32767~ -32768。
9、设计算机字长n=8,求下列各式的[X+Y]补和[X-Y]补,并验证计算结果是否正确。
X=18,Y=89 [X+Y]补=00010010+01011001=01101011B=107D 正确[X-Y]补=10111001B=00010010+10100111=补正确X=-23,Y=-11 [X+Y]补=11101001+11110101=11011110B=补正确[X-Y]补=11101001+00001011=11110100B=补正确X=18,Y=-15 [X+Y]补=00010010+11110001=00000011B=补正确[X-Y]补=00010010+00001111=00100001B=补正确X=-18,Y=120 [X+Y]补=11101110+01111000=01100110B=补正确[X-Y]补=11101110+10001000=01110110B=补于X-Y=-138 超出了机器数范围,因此出错了。
13、微型计算机的主要性能指标有哪些?答:CPU字长、存储器容量、运算速度、CPU内核和IO工作电压、制造工艺、扩展能力、软件配置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4-1某以8088为CPU的微型计算机内存RAM区为00000H ~3FFFFH,若采用6264、62256、2164或21256各需要多片芯片?
解答:8088 内存单元为8 bit,所以,从00000H 到3FFFFH,共需要214 个byte,共214*8bit,也就是共占用16K byte空间。
由于各种芯片的数据总线根数不同,所以在连接时要特别注意芯片的位数;
对于如下芯片:
6264 有8根数据线,13根地址线,故其容量为213*8bit,即8Kbyte, 所以需要2片;
62256 有8根数据线,15根地址线,故其容量为215*8bit,即32 Kbyte, 所以仅需要1片;尽管题目要求只需要16K的空间,但在使用62256时不得不使用1片。
2164 有8根数据线,12根地址线,故其容量为212*8bit,即4Kbyte, 所以需要4片;
21256 有1根数据线,10根地址线(实际为20根,分两组),但由于仅有一根数据线,要构成八位的存储器至少需要8片,但总容量为8*256Bit,远远超过题目的要求。
4.2利用全地址译码将6264接在8088的系统总线上,其所占的地址范围为
BE000H~BFFFFH,试画出连接图。
解答:6264有13根地址线,连接时接到系统总线的低13位,即A0~A12,其他7根地址线A19~A13的地址译码输入应该为:1011 111 B,故而有如下的连接:
4.3试利用6264 芯片,在8088系统总线上实现0000H~03FFFH的内存区域,试画
出电路连接图。
解答:0000H~03FFFH的地址范围为214=16K,,而6264芯片的容量为8*8K,所以需要连接2片,其中,第一片的地址为00000H~01FFFH,第二片的地址为02000H~03FFFH,这里用74LS138的Y0、Y1 作为两个芯片的片选。
4.4叙述EPROM的编成过程,说明EEPROM的编程过程。
4.5已有两片6116,现欲将其接到8088系统中去,其地址范围为40000H~40FFFH,试画出电路连接图;写入某数据并读出与之比较,若有错,则在DL中写入01H,若全对,在DL中写入EEH,试编写此检测程序。
解答:电路连接如图示:
检测程序定义为一个过程,编程如下:
CHKRAM PROC FAR
PUSH SI;
PUSH DL;
PUSH CX;
PUSH AX;
MOV CX,10000H;待检验的单元个数
MOV SI,4000H;存储体段地址
MOV DS,SI;
MOV SI,0000H;存储体首地址
CHK:MOV AL,0FFH;
MOV [SI],AL;写入检验数据FFH
MOV AL,[SI];读出
ADD AL,01H
JNZ RAMERR
MOV AL,0;
MOV [SI],AL;写入另一格检验数据
MOV AL,[SI];读出
AND AL,AL
JNZ RAMERR
MOV DL,0EEH;所有单元全对
JMP RAMCHKOUT
RAMERR:MOV DL,01H;发现错误单元
RAMCHKOUT:POP AX;
POP CX;
POP DL;
POP SI;
RET
ENDP CHKRAM
4.6 利用全地址译码将EPROM27128接到首地址为A0000H的内存区,试画出电路图。
解答:EPROM27128 的容量为8* 16K,所以有14根地址线,那么如果将其接到首地址为A0000H 内存区,高6位地址线的排列应该为:1010 00B,所以有如下的连接:
4.7内存地址从40000H到BBFFFH共有多少K?
解答:从40000H到BBFFFH的地址空间应该为BBFFFH-40000H= 7BFFFH
每K为210,即3FFH,7BFFFH/3FFH=1F0H=496D
所以,该地址空间的范围应该为496KByte。
4.8试判断8088系统中存储器译码器74LS138的输出Y0、Y4、Y6和Y7所决定的内
存地址范围,电路连接见附图。
解答:
根据示意图,A19、A18、A17、A16 的电平值为1X00B,由于采用的是部分译码(A18未使用),所以每个地址译码输出对应的两个地址范围。
Y0对应A15、A14、A13 均为0,所以其地址范围应该为:
当A18=0时,地址范围为:
1000 0000 0000 0000 ~ 1000 0001 1111 1111 1111 B 即80000H~ 81FFFH 当A18=1时,地址范围为:
1100 0000 0000 0000 ~ 1100 0001 1111 1111 1111B 即C0000H~ C1FFFFH Y4 对应的A15、A14、A13 为100,所以其地址范围应该为:
当A18=0 时,地址范围为:
1000 1000 0000 0000 0000B~ 1000 1001 1111 1111 1111B 即88000H~ 89FFFH
当A18=1时,地址范围为:
1100 1000 0000 0000 0000 ~1100 1001 1111 1111 1111B 即C8000H~C9FFFH Y6 对应的A15、A14、A13 为110,所以其地址范围为:
当A18=0时,地址范围为:
1000 1100 0000 0000 0000B~ 1000 1101 1111 1111 1111B 即8C000H~ 8DFFFH 当A18=1 时,地址范围为:
1100 1100 0000 0000 0000 B~ 1100 1101 1111 1111 1111B 即CC000H~CDFFFH Y7 对应的A15、A14、A14为111,所以其地址范围为:
当A18=0时,地址范围为:
1000 1110 0000 0000 0000B~ 1000 1111 1111 1111 1111B 即8E000H~ 8FFFFH
当A18=1 时,地址范围为:
1100 1110 0000 0000 0000B~ 1100 1111 1111 1111 1111 B 即CE000H~CFFFFH。