1、微机道理与接口技术第四章习题集与解答习题集解答第五章 汇编语言程序设计1从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。 BUF SEGMENT DAl DW 3456H DA2 DB 2 DUP(7,8) BUF ENDS答:存储器的分配图2对于习题1的定义,请说明下列每条指令执行后的结果。 1、 MOV AX,SEG DAl 2、MOV AX,SEG DA2 3、MOV BX,OFFSET DAl 4、MOV BX,OFFSET DA2 5、MOV CX,TYPE DAl 6、MOV CX,TYPE DA2 7、MOV DX,LENGTH DAl 8、MOV DX,LENG
2、TH DA2 9、MOV AX,SIZE DAl 10、MOV AX,SIZE DA2答:1、(AX)=(DS) 2、(AX)=(DS)+2 3、(BX)=4000H 4、(BX)=4002H 5、(CX)=2 6、(CX)=1 7、(DX)=2 8、(DX)=4 9、(AX)=2 10、(AX)=4 3已知数据定义如下,请计算变量PL的值是多少? DATA DB AB DATAl DB 10 DUP(?) PL EQU $-DATA答:PL=DATA+12-DATA=124已知A25、B15、C4,请计算下列表达式的值。 (1) A 50+B (2) A MOD C+B (3)(A+4)B-
3、3 (4) B3 MOD 4 (5)A LE B (6) A XOR 50答:(1) A 50+B= 25 50+15=1250+15=12515 (2) A MOD C+B=25 MOD 4+15=1+15=16 (3)(A+4)B-3 =(25+4)15-3 =1500-3=1497 (4) B3 MOD 4 =15/3 MOD 4 =5 MOD 4 =1 (5)A LE B =25 LE 15 = 0 (6) A XOR 50 = 25 XOR 50 = 435已知内存DATA单元存放一个字数据,请统计其中含有0的个数,并送人RESULT单元的程序。答:程序如下:DATA1 SEGMEN
4、TDATA DW 1234hCOUNT DB 0DATA1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA1START: MOV AX,DATA1 MOV DS,AX MOV AX,DATA MOV CX,16LOP: TEST AX,8000H JNZ NEXT INC RESULTNEXT: ROL AX,1 LOOP LOP INT 3CODE ENDS END START6已知从数据段TAB单元开始,顺序存放十六进制数0F的ASCII码,寄存器AL中的高四位二进制数是0、低四位是1。 请设计程序:用查表指令(XLAT)将寄存器AL中低四位的十六进制数转换
5、为ASCII码。答:DATA SEGMENT TAB DB 0123456789ABCDEF DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA BX,TAB XLAT INT 3CODE ENDS END START 7已知从数据段BUF单元开始存放一个三字节的带符号数,请设计对其求补的程序。 答:DATA SEGMENT BUF DB 97H,87H,9AHRES DB 3 DUP(?) DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:
6、MOV AX,DATA MOV DS,AX LEA BX,BUF LEA SI,RES MOV CX,3LOP: MOV AL,BX XOR AL,0FFH MOV SI,AL LOOP LOP CLC LEA SI,RES MOV CX,3LOP1: MOV AL,SI ADC AL,0 MOV SI,AL LOOP LOP1 INT 3CODE ENDS END START 8已知从数据段BUF单元开始存放字节型的带符号数X和Y,请设计计算Y6X+8的程序。答:DATA SEGMENT BUF DB 97H,87H ;X=97H和Y=87HDATA ENDSCODE SEGMENT ASS
7、UME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,0 MOV AL,BUF SHL AX,1 MOV BX,AX SHL AX,1 ADD AX,BX ADD AX,8 MOV BUF+1,AL MOV BUF+2,AH INT 3CODE ENDS END START 9已知X、Y是字节型的无符号数,请设计程序计算: X4 (0x10) Y X-10 (10X20) 答:程序如下:DATA SEGMENTX DB 84HY DB 0DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:
8、MOV AX,DATA MOV DS,AX MOV AL,X CMP AL,10 JAE NEXT SHR AL,1 SHR AL,1 JMP ENNEXT: SUB AL,10 EN: MOV Y,AL INT 3CODE ENDS 10已知从数据段BUF单元开始存放15个字节型数据,请设计程序将其中负数和零分别送往MINUS和ZERO开始的存储器单元。答:程序如下: DATA SEGMENT BUF DB 15DUP(?) MINUS DB 15 DUP(?) ;存放负数 ZERO DB 15 DUP(?) ;存放0 DATA ENDS CODE SEGMENT ASSUME CS:COD
9、E,DS:DATA ORG 100H START: MOV AX,DATA MOV DS,AX LEA BX,BUF MOV CX,15 LEA SI,MINUS LEA DI,ZERO LOP: MOV AL,BX CMP AL,0 JGE PZ MOV SI,AL INC SI JMP NEXT PZ: JG NEXT MOV DI,AL INC DI JMP NEXT NEXT: INC BX LOOP LOP INT 3 CODE ENDS END START 12编一程序将字符串STR(长度20字节)中所有&用$代替。答:程序如下:DATA SEGMENTSTR DB G674GH&
10、6TR677&74Y&98DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA BX,STR MOV CX,20LOP: MOV AL,BX CMP AL,& JNZ NEXT MOV AL,$ MOV BX,ALNEXT: INC BX LOOP LOP INT 3CODE ENDS END START13请设计程序,将存储器单元22002210H清0、2250H2260H置1、22AOH 22BOH置55H。要求写出主程序和子程序。解:程序如下: DATA SEGMENTBUF1 EQU 2
11、200HBUF2 EQU 2200HBUF3 EQU 2200HDATA ENDSSTACK SEGMENT DB 20 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKBEG PROC FARSTART: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX LEA BX,BUF1MOV AL,0CALL FMOVLEA BX,BUF2MOV AL,1CALL FMOVLEA BX,BUF3MOV AL,55HCALL FMOV RETSTART ENDPFMOV PROC NEAR
12、MOV CX,16 LOP: MOV BX,AL INC BX LOOP LOP RETFMOV ENDPCODE ENDS END BEG14编写程序,要求: (1)键盘键入两个字符串STRING1和STRING2 (2)比较两串所含字符是否完全相同,若相同则显示MATCH,若不相同则显示 NOMATCH。解:程序如下: DATA SEGMENTSTRING1 DB 10 DB ? DB 10 DUP(?) STRING2 DB 10 DB ? DB 10 DUP(?)XT DB MATCH,13,10,$ BXT DB NO MATCH,13,10,$DATA ENDSCODE SEGME
13、NT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA DX,STRING1 MOV AH,10 INT 21H LEA DX,STRING2 MOV AH,10 INT 21H MOV AL,STRING1+1 CMP AL,STRING2+1 JNZ BD LEA SI,STRING1+2 LEA DI,STRING2+2 MOV CH,0 MOV CL,ALLOP: MOV AL,SI CMP AL,DI JNZ BD INC SI INC DI LOOP LOP LEA DX,XT JMP DO1BD: LEA DX,BXTD
14、O1: MOV AH,9 INT 21H MOV AH,4CH INT 21HCODE ENDS END START第六章 存储器1计算机的内存和外存有什么区别?答:内存储器(主存储器)用来存放当前机器运行的程序和数据,它是计算机主机的一部分,一般把具有一定容量且速度较高的存储器作为内存储器,CPU可直接用指令对内存储器进行读写。在微机中通常用半导体存储器作为内存储器。 外存储器用来存放当前暂时不用的程序和数据。外存储器是存储容量大、速度较低、位于主机之外的存储器。CPU不能直接用指令对外存储器进行读写。 要使用外存储器中的信息,必须先将它调入内存储器。2计算机的三级存储系统是什么?解决了什么
15、实际问题?答:在现代微机中同时采用这两种存储层次,构成cache内存外存三级存储系统。这三级存储系统的形成,满足了现代微型计算机对存储系统的速度快、容量大且价格低廉的要求。cache内存存储系统解决了速度与成本的矛盾。cache内存外存三级存储系统解决了存储器的大容量和低成本之间的 矛盾。3半导体存储器有哪些优点?SRAM、DRAM各有何特点?SRAM的某一单元中存放一个数据,如05H,CPU将其取走后,该单元的内容是什么?答:半导体存储器有易读易写、体积小、集成度高、速度快的优点。 DRAM的特点是必须定时刷新、集成度高、功耗低、价格便宜。 该单元的内容是05H(不变)4ROM、PROM、E
16、PROM、E2PROM各有何特点?各用于何种场合?答:掩膜式ROM 用定作掩膜对存储器进行编程,一旦制造完毕,内容固定不能改变。适合批量生产,但不适用于科研工作。 可编程式的ROM(PROM) PROM允许用户一次性写入,再也不可更改。因此,不适用于科研。 可擦除式的ROM(EPROM) EPROM允许用户多次写入信息,写入操作由专用的写入设备完成。写入之前应先擦除原来写人的信息。一种擦除方式为紫外光擦除,用紫外光照射15分钟左右,芯片中的信息被擦除,成为一块“干净”的EPROM,可再次写入信息。电擦除式的ROM(E2PROM),即用特定的电信号对其进行擦除,可在线操作,因此很方便。它的特点是
17、写入时电压要求较高(一般为20V25V),写入速度较慢而不能像RAM那样作随机存取存储器使用。5EPROM存储器芯片还没有写入信息时,各单元的内容是什么?使用EPROM时应注意什么?答:FFH 对EPROM的擦除和写入都有专用设备,写入之前应确保芯片是“干净”的,即为全1状态。EPROM写入器(或称编程器)一般可对多种型号的EPROM芯片进行写入。通过读写芯片的识别码来确认该使用什么样的编程脉冲和编程电压。写入器由软件和硬件两部分组成,常与计算机配套工作。6若用4Kl位的RAM芯片组成16K8位的存储器,需要多少芯片?A19A0地址线中哪些参与片内寻址?哪些作为芯片组的片选信号?答:16K8/
18、4Kl=48=228=32片 需要32片 4K=22 210=212 12根地址线 A11A0 22 2根地址线 A13A127下列RAM各需要多少条地址线进行寻址?各需要多少条数据IO线? (1)512K4 (2)1K8 (3)16K4 (4)64Kl答:(1)512K4 512K=29210=219 19根地址线 4 4根数据线(2)1K8 1K=20210=210 10根地址线 8 8根数据线(3)16K4 16K=24210=214 14根地址线 4 4根数据线(4)64Kl 64K=26210=216 16根地址线 1 1根数据线8已知某微机控制系统中的RAM容量为4K8位,首地址为
19、4800H,求其最后一个单元的地址。答:最后一个单元的地址-首地址+1=4KB=212=1000H最后一个单元的地址=4800H+1000H-1=57FFH9设有一个具有14位地址和8位数据的存储器,问 (1)该存储器能存储多少字节的信息? (2)如果存储器由8K4位RAM芯片组成,需要多少片? (3)需要多少位地址用于芯片选择?答:(1)存储器的容量=2148=16K8=16KB 214个字节(16384个)(2) 16K8/8K4=22=212=4片(3) 21 1根地址线 A1310若用2114芯片组成2KBRAM,地址范围为3000H37FFH,问地址线应如何连接?(假设CPU只有16
20、条地址线、8条数据线,可用线选法和全译码法。)答:2114芯片 1K42KB =2K8/1K4=28=218=16片 需要16片 1K=20 210=210 10根地址线 A9A0线选法: 21 1根地址线 A10 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 3000H 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 33FFH 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 3400H 0 0 1 1 0 1 1 1 1 1 1 1
21、1 1 1 1 37FFH 全译码法: 16-10=6 A15A10 G2B C B AA15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 3000H 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 33FFH 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 3400H 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 37FFH11选用存储芯片和译码芯片,构成其起始地址为的一个的存储子系统(假设CPU只有16条地址线、8条数据线,用全译码法。) 答:6116 2K8 2KB =2K8/2K8=11=201=1片 需要1片 2K=21 210=211 11根地址线 A10A0全译码法: 16-11=5 A15A11 G2A G2B C B AA15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C000H 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 C7FFH
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1