小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

微型計算機原理及應用課后習題答案

 月光使者1991 2015-11-06

李伯成《微機原理》習題   第一章

本章作業(yè)參考書目:

① 薛鈞義主編  《微型計算機原理與應用——Intel 80X86系列》

機械工業(yè)出版社 2002年2月第一版

② 陸一倩 編   《微型計算機原理及其應用(十六位微型機)》

哈爾濱工業(yè)大學出版社 1994年8月第四版

③ 王永山等 編  《微型計算機原理與應用》

西安電子科技大學出版社  2000年9月

1.1將下列二進制數轉換成十進制數:

X=10010110B=

1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21

=128D+0D+0D+16D+0D+0D+4D+2D=150D

X=101101100B

=1*28+0*27+1*26+1*25+0*24+1*23+1*22+ 0*21+0*20

=256D+0D+64D+32D+0D+16D+4D+0D=364D

X=1101101B=

1*26+1*25+0*24+1*23+1*22+0*21 +1*20

=64D+32D+0D+8D+4D+0D+1D=109D

1.2 將下列二進制小數轉換成十進制數:

(1) X=0.00111B=

0*2-1+0*2-2+1*2-3+1*2-4+1*2-5=

0D+0D+0.125D+0.0625D+0.03125D=0.21875D

(2)   X=0.11011B=

1*2-1+1*2-2+0*2-3+1*2-4+1*2-5=

0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D

(3)   X=0.101101B=

1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6=

0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D

1.3 將下列十進制整數轉換成二進制數:

(1)X=254D=11111110B

(2)X=1039D=10000001111B

(3)X=141D=10001101B

1.4  將下列十進制小數轉換成二進制數:

(1) X=0.75D=0.11B

(2)   X=0.102 D=0.0001101B

(3)   X=0.6667D=0.101010101B

1.5 將下列十進制數轉換成二進制數

(1) 100.25D= 0110 0100.01H

(2) 680.75D= 0010 1010 1000.11B

1.6 將下列二進制數轉換成十進制數

(1)  X=1001101.1011B =77.6875D

(2)  X=111010.00101B= 58.15625D

1.7 將下列二進制數轉換成八進制數

(1) X=101011101B=101‘011‘101B=535Q

(2)   X=1101111010010B=1‘101‘111‘010‘010B=15722Q

(3)   X=110B=6Q

1.8   將下列八進制數轉換成二進制數:

(1) X=760Q=111'110'000B

(2) X=32415Q=11'010'100'001'101B

1.9  將下列二進制數轉換成十六進制數:

X=101 0101 1110 1101B= 5 5 E D H

X= 1100110101'1001B= 11 0011 0101 1001B= 3 3 5 9H

X= 1000110001B= 10 0011 0001 B= 2 3 1 H

1.10  將下列十六進制數轉換成二進制數:

X= ABCH= 1010 1011 1100 B

X=3A6F.FFH = 0011 1010 0110 1111.1111 1111B

X= F1C3.4B =1111 0001 1100 0011 . 0100 1011B

1.11 將下列二進制數轉換成BCD碼:

(1) X= 1011011.101B= 1'011'011.101B= 91.625d=1001 0001.0110BCD

(2)   X=1010110.001B= 1‘010‘110.001 =126.1 BCD

1.12    將下列十進制數轉換成BCD碼:

(1) X=1024D=0001 0000 0010 0100 BCD

(2) X=632 = 0110 0011 0010 BCD

(3) X= 103 = 0001 0000 0011 BCD

1.13  寫出下列字符的ASCI I碼:

A    41H     65D     0100 0001B

9    39H     47D

*    2AH    42D

=    3DH    45D

!   21H     33D

1.14 若加上偶校驗碼,下列字符的ASCII碼是什么?

字符      原碼                加上偶校驗碼之后

B         42H, 0100 0010B   42H,0100 0010B

4         34H, 0011 0100B      B4H,1011 0100B

7         37H, 0011 0111B      B7H,1011 0111B

=         3DH,0011 1101B      BDH,1011 1101B

!        21H,0010 0001B       21H,0010 0001B

?        3FH  0011 1111B       3FH,0011 1111B

1.15 加上奇校驗,上面的結果如何?

字符          原碼                  加上奇校驗碼之后

B         42H, 0100 0010B           C2H,1100 0010B

4         34H, 0011 0100B          34H,0011 0100B

7         37H, 0011 0111B          37H,0011 0111B

=         3DH,0011 1101B           3DH,0011 1101B

!        21H,0010 0001B           A1H,1010 0001B

?        3FH  0011 1111B           BFH,1011 1111B

1.16 計算下式:

(1)[?B‘/2+ABH-11011001B]*0.0101BCD=(42H/2+ABH-D9H)*0.21 BCD =       = F3H*0.21 BCD =(-DH) *0.21 BCD= -2.73D

(2) 3CH – [(84D)/(16Q)+‘8‘/8D]= 60D-[84D/14D+(56/8)]=60D-[13]D=

=47D

1.17 對下列十進制數,用八位二進制數寫出其原碼、反碼和補碼:

(正數的反碼與原碼相同,負數的反碼除符號位之外其余各位按位取反。正數的補碼與原碼相同;負數的補碼除符號位以外,其余各位按位取反之后再加一。)

數據      原碼             反碼             補碼

+99         0110 0011        0110 0011        0110 0011

-99         1110 0011        1001 1100        1001 1101

+127        0111 1111      0111 1111        0111 1111

-127        1111 1111        1000 0000        1000 0001

+0         0000 0000         0000 0000        0000 0000

-0          1000 0000        1111 1111        0000 0000

1.18   8位二進制數原碼可表示數的范圍是  +127~-128;

8位二進制數補碼可表示的數的范圍是 +127~-127;

8位二進制數反碼可表示的數的范圍是:+127~-128;

1.19 16位二進制數的原碼、補碼、反碼可表示的數的范圍是多少?

+32767~-32768、+32767~-32768、+32767~-32768;

1.20 至少寫出3種用二進制編碼狀態(tài)表示十進制數字的編碼方式。

8421碼、  5421碼   2421碼   余3碼     十進制數

0000          0000     0000       0011   0

0001          0001     0001       0100   1

0010        0010     1000       0101   2

0011        0011     1001       0110   3

0100        0100     1010       0111   4

0101        1000     1011       1000   5

0110        1001     1100       1001   6

0111          1010     1101       1010         7

1000          1011     1110       1011         8

1001         1100     1111       1100          9

李伯成《微機原理》習題   第二章

① 薛鈞義主編  《微型計算機原理與應用——Intel 80X86系列》

機械工業(yè)出版社 2002年2月第一版

② 陸一倩 編   《微型計算機原理及其應用(十六位微型機)》

哈爾濱工業(yè)大學出版社 1994年8月第四

③ 王永山等 編  《微型計算機原理與應用》

西安電子科技大學出版社  2000年9月

④洪志全等 編    《現代計算機接口技術》

電子工業(yè)出版社  2002年4月 ⑤仇玉章主編     《32位微型計算機原理與接口技術》

清華大學出版社 2000年9月

2.1 8086CPU的RESET引腳的功能是什么?

答:RESET引腳稱為復位引腳,輸入、三態(tài)、高電平有效;RESET引腳將使CPU立即結束當前操作,處理器要求RESET信號至少要保持4個時鐘周期的高電平,才能結束它正在進行的操作。CPU復位以后,除了代碼段寄存器CS的值為FFFFH外,其余所有寄存器的值均為零,指令隊列為空。

當RESET回到低電平時,CPU開始執(zhí)行―熱啟動‖程序,由于此時CS的值為FFFFH,IP的值為0000H,所以CPU復位以后執(zhí)行的第一條指令的物理地址為

FFFF0H,該單元通常放置一條段間直接轉移指令JMP SS:OO,SS:OO即為系統(tǒng)程序的實際起始地址。

2.2 在8086 CPU 工作在最小模式時,

(1) 當CPU 訪問存儲器時,要利用哪些信號?       當CPU訪問存儲器時,要利用AD0~AD15、WR*、RD*、IO/M*以及A16~A19;

(2) 當CPU訪問外設接口時,要利用哪些信號?     當CPU訪問外設接口時,同樣要利用AD0---AD15、WR*、RD*以及IO/M*,但不使用高端地址線A16---A19;

(3)當HOLD有效并得到響應時,CPU哪些引腳置高阻?

當HOLD有效并得到響應時,CPU除HOLD、HOLDA引腳外其余所有的信號引腳均為高阻態(tài)。

2.3   略

2.4  說明8086 CPU READY 信號的功能。

見 P23

2.5   8086 CPU 的NMI和INTR引腳的不同有幾點?

兩點:

(1) INTR是可以由用戶用指令禁止的,(通

過中斷允許標志IF的開---STI和關CLI進行);而NMI不能由用戶禁止;

(2) INTR是可以區(qū)分優(yōu)先級別的,NMI是最高級

的,沒有中斷優(yōu)先級的排隊。

2.6  說明8086CPU內部標志寄存器各位的含義。

8086 CPU的標志寄存器(PSW或FLAG)共有9個

標志位,分別是:

CF (Carry Flag)---  進位或借位標志;

PF (Parity Flag)---  奇偶標志;

AF (auxiliary Flag)----半進位標志;

ZF (Zero Flag) -----結果為零標志;

SF  (Sign Flag) -----  符號標志;

OF (Overflow Flag)-----溢出標志;

IF (Interrupt Enable Flag)-----中斷允許標志;

DF  (Direction Flag) ---- 方向標志;

TF  (Trap Flag) ----- 陷阱標志。

2.7 說明8086CPU內部14個寄存器的作用。

8086內部的寄存器可以分為3類:

第一類:通用寄存器:

AX、BX、CX、DX、SI、DI、SP、BP,共8個可以存儲數據或者地址的低16位;AX、BX、CX和DX可以分成8個8位的寄存器使用;SI、DI又稱變址寄存器,用于存儲變址地址;SP和BP存放指針變量值。

第二類:段寄存器:

CS、DS、SS、ES,共4個寄存器,只能存放對應段的段地址;

第三類為IP和FLAG,IP在通常情況下不允許用戶訪問,而FLAG是用以向用戶提供了解ALU工作狀態(tài)或者控制CPU工作方式的標志寄存器。

2.8 試畫出8086CPU工作在最小模式時的總線形成示意圖。

(注:BHE*引腳為34腳---即SS0,參見P25狀態(tài)編碼表)

四點說明:

A、MN/MX端接+5V,決定了8086工作在最小模式。

B、有一片8234A,作為 時鐘發(fā)生器。

C、有三片8282或74LS373,用來作為 地址鎖存器。

D、當系統(tǒng)中所連接的存儲器和外設比較多時,需要增加系統(tǒng)數據總線的驅動能力, 這時,要用兩片

8286/8287(74LS244或74LS245)作為 總線收發(fā)器。

2.9   8086/8088為什么采用地址/數據引線復用技術?

答:考慮到芯片成本,8086/8088采用40條引線的封裝結構。40條引線引出8086/8088的所有信號是不夠用的,采用地址/數據線復用引線方法可以解決這一矛盾,從時序邏輯的角度,地址與數據信號不會同時出現,二者可以分時復用同一組引線。

2.10  怎樣確定8086的最大或最小工作模式?最大、最小模式產生控制信號的方法有何不同?

答:引線MN/MX*的邏輯狀態(tài)決定8086的工作模式,MN/MX*引線接高電平,8086被設定為最小模式;MN/MX*引線接低電平,8086被設定為最大模式。最小模式下所有的控制信號由CPU相關引線直接提供;最大模式下控制信號由8288專用芯片譯碼后提供,8288的輸入由8086的S2─S0三條狀態(tài)信號引線提供。

李伯成《微機原理》習題   第三章

本章作業(yè)參考書目:

1.周明德:   微型計算機IBM-PC系統(tǒng)原理與應用   清華大學出版社  1991

2.王永山等: 微型計算機原理與應用               西安電子科大出版社 1998

3.張懷蓮:  IBMPC匯編語言程序設計             電子工業(yè)出版社     1990

3.1

MOV AX,00H;

SUB  AX,AX;

MOV AX,[BX];

MOV AX,TABLE;

MOV AL,ARAY1[SI];

MOV  AX,[BX+6];       立即尋址 寄存器尋址 寄存器間接尋址 直接尋址 寄存器相對尋址 寄存器相對尋址

3.2  若1KB的數據存放在TABLE以下,試編寫程序將該數據拌到NEXT之下。

程序片段如下:

ORG 100h

MOV CX,03FFH;數據個數

LEA SI,TABLE;源區(qū)首地址

LEA DI,NEXT; 目的區(qū)首地址

AGAIN: MOV AL,[SI];

MOV [DI],AL;   搬移

INC   SI INC   DI;   移動地址指針 DEC CX;    循環(huán)計數器遞減 JNZ    AGAIN;  循環(huán)未結束轉  HLT;     暫停 TABLE DB 1024 dup ('A'); 源數據區(qū) NEXT DB 1024 dup (0); 目的數據區(qū)

3.3  編寫10個字(16位二進制數)之和的程序

ORG 100h LEA SI,ADD1;

LEA DI,ADD2;

LEA BX,SUM;

MOV CL,CONT;

MOV CH,0;    循環(huán)初始化

CLC;   進位清零

MADD1: MOV AX,[SI];  讀加數1

ADC ADD ADD MOV ADD LOOP HLT; AX,[DI] SI,2;  DI,2;  [BX],AX; BX,2;  MADD1;     移動源區(qū)地址指針  移動目的區(qū)地址指針 回存計算結果 移動―和‖存儲區(qū)地址指針 循環(huán)控制 暫停

ADD1

ADD2

SUM

CONT DB  0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加數1 DB  56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H; 加數2 DB  10  DUP (0);  和存儲單元  DB 5 ;  循環(huán)次數

3.4 某16位二進制數,放在DATA連續(xù)的兩個單元中,試編程求其平方根和余數,將其分別存放在ANS和REMAIN中。

ORG 100h      MOV BL,2;     除數初值 AGAIN: MOV CX,NUM;  預計最大循環(huán)次數    MOV AL,BL;  0、1的平方根除外    MUL BL;    得到2的平方    CMP AX,CX;  大于原始數據么?    JG EXIT;  若原始數據小于4轉EXIT    MOV AX,CX;  讀數    DIV BL;  試除    INC BL;  除數遞增    JMP AGAIN;  繼續(xù)除 EXIT:  DEC BL;  去除除數自加    MOV ANS,BL;  存商    MOV AL,BL;  恢復余數    MUL BL;        SUB CX,AX;    MOV REMAIN,CL;    HLT   NUM DW 7; ANSDB  ?;

REMAIN DB ?;

3.5 在DATA1之下順序存放著以ASCII碼表示的千位數,將其轉換成二進制數。

MOV MOV CL,4;  移位次數 CH,CL; 循環(huán)次數 SI,OFFSET ASCBIN AX,AX DX,DX AL,7FH AL,'0'     MOV    CLD    XOR    XOR ASCB1: LODSB      AND    CMP             ;不大于?0‘結束轉換 JL ERR CMP AL,'9' JG  ASCB2  ;大于?9‘轉ASCB2 SUB AL,30H  ; 數字形式二進制數減30H    JMP ASCB3 ASCB2: CMP AL,'A'  ;大于?9‘又小于?A‘結束轉換             JL ERR CMP AL,'F' JG  ERR  SUB  AL,37H  ;大于?F‘為不合理數,結束轉換 ;字符形式ASCII數減37H ASCB3: OR  DL,AL    ROL  DX,CL    DEC  CH    JNZ  ASCB1    ROL  DX,CL    MOV BIN,DX;存儲轉換結果 ERR:  NOP    HLT

ASCBIN DB '1','B,'4','3'

BIN DW  ?

3.7 編寫程序將MOLT中的一個8位數乘以20,乘積放在ANS中(用3種方式)。

解:第一種方法:常規(guī)乘法運算

ORG 100h MOV AL,MOLT MOV BL,20 MUL BL MOV ANS,AX

HLT

MOLT DB   2   ANSDW ?

第二種方法,將MOLT連加20次

第三種方法,將―20‖連加MOLT次

ORG 100h

MOV CX,MOLT   MOV BX,20

XOR AX,AX

CLC

ADD1:ADC AX,BX

LOOP ADD1

MOV ANS,AX   HLT

MOLT    DW  5

ANSDW ?

在DATA之下存放100個無符號的8位數,找出其最大者并將其存放在KVFF單ORG 100h   MOV CX,20   MOV BX,MOLT   XOR AX,AX   CLC ADD1:ADC AX,BX   LOOP ADD1   MOV ANS,AX   HLT    MOLT    DW  5  ANSDW ?             3.8

元。

ORG 100h

XOR DL,DL

LEA  DI,KVFF; NEXT0: LEA  SI,BUFFER;    MOV CL,99;        比較次數為N-1次

NEXT1: MOV AL,[SI];

INC  SI;

CMP DL,AL;

JNC NEXT2;

MOV DL,AL;                  DL中始終存目前最大值

NEXT2: DEC CL;

JNZ NEXT1;

MOV [DI],DL;              最大值存儲

HLT     BUFFER DB   ;自行定義100個數據

KVFF   DB   ?

3.9  若將數據按大小順序排序,試編寫程序..

解:此處采用 ―冒泡法‖予以處理:

ORG 100h LEA MOV DI,BUFFER;  數據區(qū) BL,99;       外循環(huán)次數 NEXT0:    NEXT3:              NEXT5:      MOV SI,DI;  MOV CL,BL;  內循環(huán)次數 MOV AL,[SI]; 讀數  INC SI;     移動指針  CMP AL,[SI];  比較  JNC NEXT5; 大于轉NEXT5  MOV DL,[SI];  MOV [SI-1],DL;  MOV [SI],AL;  不大于互換 DEC CL;  內循環(huán)次數減一   JNZ  DEC NEXT3;     BL; 外循環(huán)次數減一    JNZ  NEXT0    HLT     BUFFER DB 自行定義100個字節(jié)型數據

3.10 在BVFF單元中有一個BCD數A,試根據下列關系編寫程序,計算結果存在DES中.

A<20,Y=3*A;  A<60,Y=A-20;   A>=60,Y=80.

ORG 100h

MOV AL,BVFF

CMP AL,20

JL EX1

CMP AL,60

JL EX2

MOV AL,80

JMP STOP

EX1:  MOV BL,3

MUL BL

JMP STOP

EX2:  SUB AL,20

STOP: MOV DES,AL

HLT

BVFF DB  8

DES DB   ?

3.11址為DATAB開始的80個單元中,存放某班80個學生的某課程成績,要求:

統(tǒng)計>=90分、80~89分、70~79分、60~69分、60分以下的人數,結果存放在

BTRX開始的5個單元中

求平均成績,結果存放在LEVEL中。

解:寄存器使用分配:90分以上在DH,80分以上在DL,70分以上在BH,60分以上在BL,60分以下在AH,總分、均分都在[DI]。

ORG 100h XOR AH,AH  XOR DX,DX  XOR BX,BX      ;統(tǒng)計結果清零 ;統(tǒng)計結果清零  LEA SI,DATA  LEA DI,LEVEL  MOV CL,CONT;      總人數送循環(huán)計數器 CX goon: MOV AL,[SI]     ;讀原始數據  ADC [DI], AL;累加總分    ADC [DI+1],0 ;計算進位    CMP AL,90    JL   PP8      ;     不高于90分者轉PP8    INC DH      ;     90--100分的人數加一    JMP STOR

PP8:    PP7:    PP6:   CMP AL,80 JL    PP7  ;不高于80分轉PP7 INC DL  ;80----89分的人數加一 JMP STOR CMP  AL,70 JL PP6  ;不高于70分者轉PP6 INC     BH  ;70---79分的人數加一 JMP STOR CMP AL,60 JL PP5  ;不高于60分者轉PP5 INC     BL  ;60---69分的人數加一  JMP STOR PP5: INC AH  ;低于60分的人數加一 STOR: INC  SI   ;讀下一個分數                 LOOP GOON  ;CX=CX-1,CX不為零轉GOON,繼續(xù)統(tǒng)計 LEA SI,BUFFER ;回存統(tǒng)計結果 MOV INC SI MOV INC SI MOV INC SI MOV INC SI MOV MOV [SI],DH [SI],DL [SI],BH [SI],BL [SI],AH AX,WORD PTR [DI] ;計算平均成績 MOV CL,CONT DIV CL MOV LEVEL,AL ;回存平均成績

HLT

CONT DB  10

DATA  DB 30,65,99,80,75,    89,100,45,60,70

BUFFER DB ?,?,?,?,?

LEVEL DB ? ,?

3.12   求兩個有符號數(DATA1,DATA2)差的絕對值,結果存入DATA3.

ORG  100h MOV AL,DATA1;讀入被減數 SUB AL,DATA2;減去減數 JC    CHANGE;

JMP  STOR

CHANGE:  NEG AL

STOR:    MOV DATA3,AL

HLT

DATA1 DB  3

DATA2 DB    5

DATA3 DB  ?

3.13 存從40000H到4BFFH的個單元均寫入55H,并再逐個讀出,驗證是否一致,若一致,置AL為7EH,否則置AL為81H.

ORG 100h

MOV AX,4000H;

MOV DS,AX;

MOV SI,0

START: MOV CX,0BFFFH

BEGIN: MOV [SI],55H

MOV AL,[SI]

INC SI

CMP AL,55H

JNZ ERR

LOOP   BEGIN

MOV AL,7EH

JMP STOP

ERR: MOV AL,81H

STOP:  HLT

3.14~3.15    端口03FBH的BIT5為狀態(tài)標志,當該位為1時,表示外設忙,不能接收數據;當為0時,表示外設閑,可以接收數據;當CPU向端口03F8H寫入一個字節(jié)的數據時,03FBH的BIT5置1,當它變?yōu)?狀態(tài)時,又可以寫入下一個數據。據此編寫將起始地址為SEDAT的50個數據輸出到03F8H端口的程序。

WAIT:                MOV DX,03FBH IN AL,DX TEST AL,0010 0000B;(20H)   JZ SEND   JMP WAIT SEND:MOV DX,3F8H   MOV AL,[SI];   CMP AL,0AH;輸出字串結束標志符     JZ STOP OUT DX,AL WAIT   JMP STOP:HLT

3.16 口02E0H的BIT2和BIT5同時為1,表示端口02E7H有一個字節(jié)型數據準備好可以

用以輸入,當CPU從該端口讀入數據后,02E0端口的BIT2和BIT5就不再同時為1;只有當02E7H端口的數據再次準備好時,它們才會再次同時為1,據此編寫從02E7H端口輸入32個數據然后存入A1000H單元開始的區(qū)域。

MOV AX,0A000H

MOV DS,AX

MOV SI,1000H;  設置存儲區(qū)地址

MOV CL,20H;  輸入數據個數

BEGIN:MOV DX,0E20H

IN AL,DX

TEST AL,0010 0100B; 測試狀態(tài)位 BIT5、BIT2

JZ BEGIN;  不同時為1繼續(xù)測試

MOV DX,02E7H

IN AL,DX;  輸入數據

MOV [SI],AL;  存到指定區(qū)域

INC SI;  移動地址指針

LOOP    BEGIN;  循環(huán)

HLT

3.17   在內存40000H開始的16K的單元中存放著一組數據,將其順序搬移到起始地址為A0000H的區(qū)域。

解:利用字符串操作指令 MOVSB,16K即16*1024=3FFFH。

MOV   MOV  MOV  MOV  MOV  MOV  MOV AX,4000H  DS,AX  AX,A000H  ES,AX  SI,0  DI,0 CX,3FFFH

CLD

REPMOVSB

HLT

3.18  上題的基礎上,將兩個區(qū)域的數據逐個進行比較,若有錯將BL置0,全對將BL置

FFH。

MOV MOV   AX,4000H DS,AX

MOV MOV MOV MOV MOV      AX,A000H ES,AX SI,0 DI,0 CX,03FFH

CLD

AAB: CMPSB

JNZ  STOP

LOOP  AAB

MOV  BL,0FFH

JMP  EX1 STOP: MOV BL,0; EX1:   NOP

HLT

3.19 統(tǒng)計由40000H單元開始的16K個單元中所存字符?A‘的個數,統(tǒng)計結果存放在DX寄存器中。

MOV  AX,4000H

MOV  DS,AX

MOV  SI,0;

MOV CX,3FFFH; 數據個數

MOV DX,0;統(tǒng)計結果寄存器清零 XOR  DX,DX

CLD

AAB:  LODSB

CMP AL,?A‘; 比較

JZ AAC;字符為?A‘轉計數

LOOP AAB;   循環(huán)

JMP STOP; 處理完畢轉結束

AAC:   INC DX;  統(tǒng)計結果加1

DEC CX;  循環(huán)次數減1

JCXNZ AAB; CX<>0繼續(xù)

STOP: HLT

3.20  編寫對AL中的數據進行―偶校驗‖的一個過程,并將校驗結果放入AL寄存器。

PJY                       PROC   NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,DAT AND AL,AL JNP PJY1

3.21

MOV

AL,00H; 表示為偶

JMP EXIT

PJY1: MOV AL,FFH; 表示為奇  EXIT: POP DX          PJY

POP CX  POP BX  POP AX  RET  ENDP DAT DB   ?

對80000H開始的256個單元的數據加上偶校驗。

ORG 100h

MOV AX,8000H MOV DS,AX

MOV SI,0

MOV CX,100H CLD

LODSB;(MOV AL,[SI] ;INC SI) TEST AL,AL JNP PAR1

LOOP   PAR0 JMP STOP OR AL,80H; MOV  [SI-1],AL DEC  CX JNZ  PAR0  HLT

PAR0:

PAR1:            STOP:

4-1 某以8088為CPU的微型計算機內存RAM區(qū)為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的系統(tǒng)總線上,其所占的地址范圍為BE000H~BFFFFH,試畫出連接圖。

解答:6264有13根地址線,連接時接到系統(tǒng)總線的低13位,即A0~A12, 其他7根地址線A19~A13的 地址譯碼輸入應該為:1011  111  B,故而有如下的連接:

4.3

試利用6264 芯片,在8088系統(tǒng)總線上實現0000H~03FFFH的內存區(qū)域,試畫出電路連接圖。

解答:0000H~03FFFH的地址范圍為214=16K, ,而6264芯片的容量為8*8K, 所以需要連接2片,其中,第一片的地址為00000H~01FFFH,第二片的地址為02000H~03FFFH,這里用74LS138的Y0、Y1 作為兩個芯片的片選。

4.4

敘述EPROM的編程過程,說明EEPROM的編程過程。

EPROM編程通常采用兩種模式:標準編程和快速編程:

標準編程是在VCC、VPP、CE、OE、地址信號、數據信號有效并穩(wěn)定后加入50毫秒的PGM編程負脈沖,可以在寫入一個數據后使OE變高而立即校驗,也可以在所有數據寫入后逐一校驗。

標準編程有兩大缺陷:一是時間過長,比如2764全片編程約需7分鐘,時間過長;再是編程脈沖寬度稍大容易造成芯片因功耗過大而燒毀。

快速編程將PGM的寬度減小到100微妙左右,顯然速度加快了500倍左右。 能否使用快速編程取決于芯片的型號。

EEPROM 由于可以在線擦除信息,所以可以單字節(jié)編程或自動按頁編程。 在單字節(jié)寫入時,CE為低,OE為高,在WE加入100納秒的負脈沖,寫入時間包括擦除原有內容和寫入新內容的時間,一般為10毫秒以內,可以通過查詢READY/BUSY的狀態(tài)判定。

自動按頁編程用高位線決定頁地址,低位線決定頁容量,然后一次寫入一頁內容,寫完后查詢READY/BUSY狀態(tài),此一過程耗時在300微秒左右,所以速度較快。

4.5已有兩片6116,現欲將其接到8088系統(tǒng)中去,其地址范圍為40000H~40FFFH,試畫出電路連接圖;寫入某數據并讀出與之比較,若有錯,則在DL中寫入01H,若全對,在DL中寫入EEH,試編寫此檢測程序。 解答:電路連接如圖示:

檢測程序定義為一個過程,編程如下:   CHKRAM

PROC   FAR

SI; DL; CX; AX;

CX,10000H;

待檢驗的單元個數

PUSH PUSH PUSH PUSH

MOV MOV MOV MOV MOV MOV MOV

SI,4000H;     存儲體段地址 DS,SI; SI,0000H;  AL,0FFH;  [SI],AL;  AL,[SI];

存儲體首地址

寫入檢驗數據FFH 讀出

CHK:

ADD JNZ

AL,01H RAMERR

寫入另一格檢驗數據 讀出

MOV       AL,0;  MOV MOV AND  JNZ

[SI],AL;   AL,[SI];  AL,AL RAMERR

MOV       DL,0EEH;  JMP  MOV

RAMCHKOUT DL, 01H;

所有單元全對

RAMERR:  發(fā)現錯誤單元

RAMCHKOUT: POP

POP

AX; CX;

POP    DL; POP    SI;

RET ENDP      CHKRAM

4.6   利用全地址譯碼將EPROM27128接到首地址為A0000H的內存區(qū),試畫出電路圖。  解答:EPROM27128 的容量為8* 16K,所以有14根地址線, 那么如果將其接到首地址為A0000H 內存區(qū),高6位地址線的排列應該為:1010 00B,所以有如下的連接:

4.7 內存地址從40000H到BBFFFH共有多少K?

解答:從40000H到BBFFFH的地址空間應該為 BBFFFH-40000H= 7BFFFH   每K為210,即3FFH,7BFFFH/3FFH=1F0H=496D

所以,該地址空間的范圍應該為496KByte。

4.8 試判斷8088系統(tǒng)中存儲器譯碼器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

轉載請保留出處,http://www./doc/13fd56b369dc5022aaea000f.html

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多