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

合集下载

微机原理习题解答第四章-

微机原理习题解答第四章-

第四章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。

第4章 微机原理习题答案

第4章 微机原理习题答案

第四章习题一、填空题1.端口的直接寻址、端口的间接寻址2.操作码、操作数3. CF4.端口的间接5.(1)ADD DX,BX(2)ADD AX,[BX](3)ADD AL,[BX+SI](4)ADD WORD PTR [0524H],1A59H6.主存单元7. BX、SI、DI、BP8. 12H9. XOR AX,0FFFFH10. 3511.立即数、寄存器操作数、存储器操作数、端口操作数12.直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对的基址加变址寻址13. 4154H、4154H14. SI、数据、DI、附加数据15. CX≠0、ZF=1、CX≠0、ZF=016.短内直接调用、短内间接调用、段间直接调用、段间间接调用17.(1)MOV AX,0(2)SUB AX,AX(3)XOR AX,AX18. 0FFFFH,119.1256H、3280H、2450H20.0AB0H、1、1、0F8B0H、1、1二、选择题21.B22.C24.C25.C26.C27.C28.A29.C30.A31.B32.C33.B34.C35.B36.B37.C38.B39.B40.A41.B42.D42.A43.B44.D45.C46.C47.B48.A49.C50.(1)D (2)A (3)B (4)C (5)A (6)B (7)A 三.判断题51.错53.错54.对55.对56.错57.对58.对59.对60.对61.(1)错(2)错(3)错(4)对(5)对(6)错四.简答题62.堆栈是一种按“先进后出”原则存取数据的存储区域。

堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。

63.短转移:指段内-128~127之间的转移,位移量用一个字节表示;近转移:指段内±32K之间的转移,位移量用一个字表示;远转移:指段间1MB范围的转移;段内转移:指在同一个代码段内的转移,可以是短转移或者近转移;段间转移:指转移到另外一个代码段,就是远转移;8086/8088CPU的JMP、CALL和INTN指令可以实现段间转移。

微机原理第四章习题及答案

微机原理第四章习题及答案

第四章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 )。

微机原理第4章练习题及答案

微机原理第4章练习题及答案

微机原理第4章练习题及答案第4章 80x86指令系统一、自测练习题㈠选择题 1.MOV AX,[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+(SI) B. (ES)×16+(BX)+(SI) C.(SS)×10H+(BX)+(SI) D.(CS)×10H+(BX)+(SI)2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。

A.(DS)×10H+(BP)+(SI) A. (ES)×16+(BP)+(SI) C.(SS)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI) 3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+SI) B.(ES)×10H+(BX)+(SI) C.(SS)×10H+(BX)+SI) D.(CS)×16+(BX)+(SI)4.JMP WORD PTR[DI]是( )。

A.段内间接转移B.段间间接转移C.段内直接转移D.段间直接转移5.JMP FAR PTR BlOCK(BLOCK是符号地址)是( )。

A.段内间接转移B.段间间接转移C..段内直接转移D.段间直接转移6.INC指令不影响( )标志。

A.OF B.CF C.SF D.ZF 7.条件转移指令JNE的测试条件是( )。

A.ZF=1 B.CF=0 C.ZF=0 D.CF=1 8.下列指令中,有语法错误的是( )。

A.MOV [SI],[DI] B.IN AL,DX C.JMP WORD PTR[BX+8] D.PUSH WORD PTR 20[BX+S1] 9.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是。

A.20102H B.20101H C.200FEH D.200FFH 10.对于下列程序段:AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用指令完成同样的功能。

《微型计算机原理与接口技术》第三版 课后答案 第四章

《微型计算机原理与接口技术》第三版 课后答案 第四章

习题一、选择CBC AAD三、判断√√√√√五、设计1、编程实现求S=(X2+Y2)/Z的值,将最后结果放入RESULT单元保存。

参考程序如下:DA TA SEGMENT ;定义数据段X DB 5 ;给X、Y、Z赋初值Y DB 7Z DB 2RESULT DB ?;定义RESULT单元,预留空间DA TA ENDS ;数据段结束CODE SEGMENT ;定义代码段ASSSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;初始化DSMOV DS,AXMOV AL,X ;将数据X送ALMUL X ;计算X2MOV BX,AX ;将中间结果保存到BXMOV AL,Y ;将数据Y送ALMUL Y ;计算Y2ADD AX,BX ;X2+Y2,结果保存到AXDIV Z ;计算(X2+Y2)/ZMOV RESULT,AL ;最后结果送RESULT单元MOV AH,4CH ;返回DOSINT 21HCODE ENDS ;代码段结束END START ;汇编结束2.计算S=(A+B)/2 – 2(A AND B)。

DA TA SEGMENTA DB 12B DB 51S DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXMOV AL,AADD AL,BSHR AL,1MOV AH,AMOV BL,BAND AH,BLMOV BL,AHSHL BL,1SUB AL,BLMOV S,ALMOV AH,4CHINT 21HCODE ENDSEND START3. 参考P86 例4.34.DA TA SEGMENTX DW 34S DW ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DA TAMOV DS,AXMOV AX,XCMP AX,0JL DOUBCMP AX,10JLE TRIBSAL AX,1SAL AX,1JMP EXITDOUB: SAL,AX,1JMP EXITTRIB:SAL AX,1ADD AX,XEXIT:MOV S,AXMOV AH,4CHINT 21HCODE ENDSEND START5.统计非数字字符的个数DA TA SEGMENTBUF DB 20H DUP (?)CNT DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DA TAMOV DS,AXLEA SI,BUFMOV DL,0NEXT1:MOV AH,01HINT 21HMOV [SI],ALINC SICMP AL,0DHJZ EXITCMP AL,30HJGE NEXTINC DLJMP NEXT1NEXT:CMP AL,39HJBE NEXT1INC DLJMP NEXT1EXIT:MOV CNT,DLMOV AH,4CHINT 21HCODE ENDSEND START6、将键盘连续输入的小写字母转换成大写字母CODE SEGMENTASSUME CS:CODESTART: MOV AH,01HINT 21HMOV BL,ALMOV DL,’-‘MOV AH,02HINT 21HMOV AL,BLCMP AL,’a’JB EXITCMP AL,’z’JA EXITSUB AL,20HMOV DL,ALMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HJMP STARTEXIT: MOV AH,4CHINT 21HCODE ENDSEND START7.统计负数的个数DATA SEGMENTBUF DB 45,50,-34,40,4,15,29,-1,-2,-59CN EQU $-bufA DB ?B DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXLEA SI, BUFMOV CX, CNMOV BX, 0LP: MOV AL, [SI]INC SITEST AL, 80HJZ NEXTINC BHJMP EXITNEXT: INC BLEXIT: LOOP LPMOV A, BLMOV B, BHMOV AH,4CHINT 21HCODE ENDSEND START8、宏定义,将16进制数转换成ASCII码HEXTOA MACROAND AL,0FHCOM AL,9JNA HEXTOA1ADD AL,07HHEXTOA1: ADD AL,30HENDM出师表两汉:诸葛亮先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。

微机原理 第四章答案

微机原理 第四章答案
14、设(BX)=0400H,(DI)=003CH,执行 LEA BX,[BX+DI+0F62H]后,(BX)=? (BX)=139E H
15、设(DS)=C000H,(C0010H)=0180H, (C0012H)=2000H,执行LDS SI,[10H]后, (SI)=?, (DS)=? (SI)=0180 H,(DS)=2000 H
REP STOSW 程序段的功能:
将起始地址为0404 H开始的80 H(128)个字单元清成0 或将起始地址为0404 H开始的100 H(256)个字节单元清成0
11
第4章 微型计算机原理作业情况
13、 设(BX)=6B30H,(BP)=0200H,(SI)=0046H, (SS)=2F00H,(2F246H)=4154H,试求执行 XCHG BX,[BP+SI]后, (BX)=?,(2F246H)=? (BX)=4154H (2F246H)=6B30H
6
第4章 微型计算机原理作业情况
8、分别执行下列指令,试求AL的内容及各状态标志位的状态。
(1) MOV AL,19H ;
ADD AL,61H ;(AL)=7AH
OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0
(2) MOV AL,19H ;
SUB AL,61
;(AL)=0DCH
OF=0 SF=1 ZF=0 AF=1 PF=0 CF=1
(1) MOV CL,20H[BX][SI] ;(CL)=0F6 H
(2) MOV [BP][DI],CX
;(1E4F6 H)=5678 H
(3) LEA BX,20H[BX][SI] ;(BX)=0056 H
MOV AX,2[BX]
;(AX)=1E40 H

微机原理作业与答案第四章

微机原理作业与答案第四章

第四章汇编语言程序设计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有;的同学这样写,错在哪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 [DI],ALMOV DL,ALMOV 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 ;MOV DI,0 ;MOV CX,NAGAIN: MOV AL,CHAR1[SI] ;SUB AL,20HMOV CHAR2[DI],AL ;INC SIINC DI LOOP AGAINMOV AH,4CHINT 21H ;不是必须的C ENDSEND START第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,OFFSET CHAR1 ;LEA SI,CHAR1MOV DI, OFFSET CHAR2 ;LEA DI,CHAR2MOV CX,NCLD ;不写(隐含)也是0(递增)但不能STDAGAIN: LODSB ;执行一次,隐含修改SISUB AL,32STOSB ;MOV [DI],AL;执行一次, 隐含修改DI INC DILOOP AGAIN ;LOOP指令只修改CX,不管SI,DIMOV 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)S ENDSC SEGMENTASSUME 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,NAGAIN:MOV AL,CHAR1[SI] ;只用一个地址指针,SI[CHAR1]是错误的SUB AL,20HMOV 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]LEA DI,CHAR2MOV CX,10 ;需要转换的字符长度为10个字节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单元。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的编程过程。

EPROM编程通常采用两种模式:标准编程和快速编程:
标准编程是在VCC、VPP、CE、OE、地址信号、数据信号有效并稳定后加入50毫秒的PGM编程负脉冲,可以在写入一个数据后使OE变高而立即校验,也可以在所有数据写入后逐一校验。

标准编程有两大缺陷:一是时间过长,比如2764全片编程约需7分钟,时间过长;再是编程脉冲宽度稍大容易造成芯片因功耗过大而烧毁。

快速编程将PGM的宽度减小到100微妙左右,显然速度加快了500倍左右。

能否使用快速编程取决于芯片的型号。

EEPROM 由于可以在线擦除信息,所以可以单字节编程或自动按页编程。

在单字节写入时,CE为低,OE为高,在WE加入100纳秒的负脉冲,写入时间包括擦除原有内容和写入新内容的时间,一般为10毫秒以内,可以通过查询READY/BUSY 的状态判定。

自动按页编程用高位线决定页地址,低位线决定页容量,然后一次写入一页内容,写完后查询READY/BUSY状态,此一过程耗时在300微秒左右,所以速度较快。

已有两片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
利用全地址译码将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。

相关文档
最新文档