本篇部落格整理彙編語言課上及課後練習題,如有錯誤歡迎指正。
目錄
第一周作業
某一次課上練習
第7周練習題
設計題
第8周練習題
第七章作業
編輯
存儲器尋址練習題
例子1:編輯
例子2:
編輯
例子3:
例子4:
8253晶片題
例子1:
例子2
第一周作業
填空題:
- 中央處理單元CPU由 運算器 、 控制器 、和 寄存器 三部分組成。
- 在計算機中,通常運算器和 控制器 是核心部件,合稱為中央處理單元CPU。
- 某CPU的字長為4,假設該CPU執行一次加法運算需要1ns,執行兩個double 類型的數(假設double類型的變量占8個位元組)相加時需要 16 ns。
CPU的字長為4,代表字長為4位,需要1ns;8個位元組是64位,64/4=16ns。
- 如果某CPU處理器的頻率為100Hz,則該CPU做一次運算需要的時間為____0.01 ___秒。
頻率是周期的倒數 1/100s
- CPU晶片可以與它外部的兩類晶片進行互動資訊,這兩類晶片分别是 記憶體儲器晶片 、 I/O接口晶片 ;這些晶片之間通過 總線 互相連接配接。
- 一條指令的執行包括三個步驟: 取指 、譯碼、 執行 。其中“取指”指的是把指令從 主存 中取到 CPU 中。
- 8086CPU内部的AX是一個 16 位寄存器,可以進一步将其分為高8位寄存
器 AH 和低8位寄存器 AL 。
- 十進制數65對應的8位二進制數是0100 0001B,十進制數19對應的8位二進制數是 00010011B ,十進制數49對應的二進制數是 00110001B 。
- 8位二進制數0010 0011B對應的十進制數是35,8位二進制數0101 0001B對應的十進制數是 81D ,8位二進制數1000 0101B對應的十進制數是 133 D 。
- 十進制數274D對應的十六進制數為___ 112H___;十六進制數3CH對應的十進制數為__60D_ ___。
某一次課上練習
由于沒有電子版隻有當時手拍圖檔
答案: D
解析:計算公式為(5*2+2)*10+3=123 DUP就是重複幾次
答案:C
解析:16=2^4 1M=2^20 故16M=2^24B
答案:25000H 916H 0A3800H (如果16進制中遇到字母開頭需要加上前導0)
計算方法通通為段基址左移一個然後加上偏移量
答案:CF=1 OF=0 ZF=0 SF=0
計算過程:1101 1000 1000 0100
0100 1001 1000 1000
———————————
10010 0010 0000 1100 (220CH)
CF是進位标志 0-無進位 1-有進位(僅對無符号整數)
OF是溢出标志 1-有溢出 0-無溢出(判斷方法1:都看成帶符号的數 eg;一個負數加一個正數不可能溢出 判斷方法2:觀察最高位和次高位的進位是否都有進位 如果是則有溢出)
SF符号标志 1-最高位為1 0-最高位為0(注意SF是最高位不是進位 ;兩個位要區分開)
ZF零标志 1-結果為0 0-其他值
答案:存儲器尋址 寄存器尋址 立即數尋址
判斷方法很簡單 這裡不再贅述
第7周練習題
- 某微機具有256M位元組的記憶體空間,其CPU的位址總線應有( D )條。
A、20 B、22 C、24 D、28
解析:1M=2^20 256=2^8 =>256M=2^28 B
考察知識點:CPU位址總線根數與記憶體空間的關系
位址總線含有x根,那麼CPU可以通路2^x個記憶體單元
- 指令mov al,[3]中,源操作數的尋址方式是(A )。
A、存儲器尋址 B、寄存器尋址 C、立即數尋址 D、接口尋址
考察資料三種尋址方式:區分 立即數尋址 eg:mov ax,332h、寄存器尋址 eg:mov ax,bx、存儲器尋址 eg:mov ax,[5] (标志:帶有方括号)
- 若要檢查AX寄存器中的D12位是否為1,但不改變其中的值,應該用( A )指令。
A、TEST AX,1000H B、OR AX,1100H
C、XOR AX,1000H D、AND AX,1000H
- 在利用總線對存儲器進行通路時,位址信号有效和資料信号有效的時間關系應該是( A )。
A、位址信号較先有效 B、二者同時有效
C、資料信号較先有效 D、同時高電平
先尋位址再傳輸資料
- 當 8086 CPU 采樣到 READY=0 ,則 CPU 将 ( D )。
A、執行停機指令 B、重新發送位址碼
C、執行空操作指令 D、插入等待周期
如果一個總線周期4T時間完成不了一個操作,就會将READY置0 增加一個Tw時間
- 總線信号分成三組,分别是資料總線、位址總線 和控制總線。
- CMP CX,1A2CH指令之後是JZ指令,發生轉移的條件是CX= 1A2CH ,此時ZF=1 。
零标志位ZF=1,說明運算結果為0,即CX與1A2CH相等
- 譯碼方式分為全譯碼和部分譯碼。
- 8086 CPU中用于選擇CPU工作模式的引腳是 MN/MX* 。(*代表MX取反)
- 8086 CPU中用于選擇通路對象的引腳是 M/IO* 。(*代表IO取反)
- 存儲系統中的局部性原理可以從空間局部性和時間局部性 兩個方面來了解。
- 8086 CPU的外部中斷引腳有 NMI/ 和INTR兩個。
- 8086 CPU執行指令“MOV [SI], DX”時,在其引腳上将産生存儲器寫總線操作;CPU預取指令時,在其引腳上将産生_存儲器讀 總線操作
- 占用總線進行資料傳輸,一般需要經過總線請求和仲裁、__尋址_ 、資料傳送和結束4個階段。
- 8086 CPU無等待的總線周期由_4_個T狀态組成。
- 假設目前CS=36A8H,IP=007AH,DS=31A4H。假設IP目前所指向的指令為mov AX,[5],請回答:
- CPU取的下條指令的實體位址是多少?
指令段的實體位址=CS+IP(即段基址+偏移量)CS先左移一個位再與IP相加
36A80+007A=36AFAH
2.取到該指令後,執行該指令時,需要從哪個記憶體單元開始取兩個位元組送到AX寄存器中?
記憶體資料段實體位址=DS+資料偏移量
31A40+5=31A45H
設計題
設計一個存儲器接口電路,其中部分電路給出如下圖所示,要求該存儲系統的位址範圍為0DC000H~0DCFFFH,可增加的器件可以是基本門電路(與門、或門、非門、與非門、或非門),完成74LS138同CS的連接配接,畫出虛線框中門電路。
擺出位址範圍對應位置的數字
DC000H
1101 1100 0000 0000 0000
DCFFFH
1101 1100 1111 1111 1111
故A14 A13 A12=100
由上到下CBA=001 故選中Y1 CS連接配接Y1
門電路 A19 A18 A17 A16=1101是以需要A17連接配接一個非門轉換為1 最後四個輸出為1再連接配接一個總的非門 因為是低電平有效
像這樣畫
第8周練習題
- 已知SP=2020H,執行PUSH AX後,SP寄存器的值是( 201EH )。(此題沒有正确選項)
A、2018H B、201DH C、2020H D、2022H
解析:PUSH操作 SP-2; POP操作 SP+2
2020H-2=201EH
- 8086 CPU用(A )信号下降沿在T1結束時将位址資訊鎖存在位址鎖存器中。
A、ALE B、READY C、BHE D、M/
/
ALE——位址鎖存允許,是一個三态、輸出、高電平有效的信号。
- JMP指令或帶條件轉移指令構成的段内轉移中,轉移的本質是改變( C )寄存器的值。
A、AX B、CS C、IP D、Flag
段内轉移改變IP 段間轉移改變CS
- 标志寄存器中控制串傳送方向的标志位是( D )。
A、CF B、SF C、IF D、DF
DF是一種控制标志,控制字元串複制的方向
- 總線信号分成三組,分别是資料總線、_位址總線__和控制總線。
- 8086 CPU預取指令時,在其引腳上将産生存儲器讀總線操作;當其執行指令MOV [SI], DX 時,在其引腳上将産生__存儲器寫__總線操作。(由寄存器寫入存儲器)
- 占用總線進行資料傳輸,一般需要經過總線請求和仲裁、__尋址 、資料傳送和結束4個階段。
- 堆棧操作時,8086 CPU會自動選擇 SS 值作為段基值,再加上由SP提供的偏移量形成實體位址。(堆棧段尋址為SS+SP)
- 8086 CPU無等待的總線周期由__4__個T狀态組成。
- 如果某處理器的時鐘頻率為200MHz,則每個時鐘周期T的持續時間為_1/200M___。
- 邏輯位址0A100H :280EH對應的實體位址是__0A380EH__。
- 一條指令的執行包括三個步驟:取指、_譯碼_ _、執行。
- 某CPU資料線16根,位址線20根,其16-13号引腳分别對應多路複用的AD3-AD0,目前CS=36A8H,IP=007AH,DS=31A4H。假設IP目前所指向的指令為mov DS:[5],AX,目前AX中的值為5A7BH;假設該CPU所連接配接的總線中的資料總線的寬度是16。回答下列問題:
(1)、在取指對應的總線周期的T1中,16-13号引腳(即A3-A0)的值分别是多少?
取指令對應指令段位址為CS+IP,36A80+0074=36AFAH 由于16-13号引腳正好對應最低四位A3-A0 位址最後一個數為A 改為二進制:1010即分别為所對應A3-A0值
(2)、在取指對應的總線周期中,M/
引腳=?
引腳=?
引腳=?
M/IO* 為存儲器或I/O操作信号 其中I/O信号低電平有效
取值操作是由記憶體讀入CPU中 故M高電平有效,M/IO*=1
RD*為讀信号 且低電平有效 故RD*=0
WR*為寫信号 且低電平有效 故WR*=1
(3)、在執行指令對應的總線周期的T1中,16-13号引腳(即A3-A0)的值分别是多少?
執行指令對應資料段位址為DS+資料偏移量[5] ,31A40+5=31A45H ,16-13号引腳對應最低位5 改為二進制:0101 即為A3-A0對應的值
(4)、在執行指令對應的總線周期的T2-T4中,16-13号引腳(即D3-D0)的值分别是多少?
傳送資料時,直接傳資料值5A7BH,16-13号引腳傳送最低位B,改為二進制為:1011,對應D3-D0
- 現有一種存儲晶片容量為512×8b,若要用它組成4KB的存儲容量,需要多少片這樣的存儲晶片?每塊晶片需要多少根尋址線?而4KB存儲系統最少需要多少根尋址線,其中幾根用作片選,幾根用作片内尋址? (要列出計算公式)
4x1024x8/512x8=8 8片存儲晶片
512=2^9 9根尋址線
4K=2^12 12根尋址線 3個片選 9個片内尋址
第七章作業
答案:(一)存儲器讀 I/O接口寫
(二)dx (因為dx存放有端口号可以送到位址總線上)
(三)al (al寄存器中存放有資料,故将al的内容送到資料總線上)
(四)I/O接口晶片
(五)資料緩沖 信号變換
(六)獨立編址 統一編址
(七)2^20=1M (8086CPU含有20根位址線)
(八)2^16=64K(8086CPU采用獨立編址方式,隻使用最低16個位址信号)
(二)
MOV SI,OFFSET BUFFER1
MOV CX,0
L0:
MOV DX,621H
AGAIN:
IN AL,DX
AND AL,0000 0100B
JZ AGAIN
MOV DX,620H
in al,dx
CMP AL,'a'
JB L1
CMP AL,'z'
JA L1
SUB AL,32 ;是a~z之間的減32
L1:
MOV [SI],al
ADD SI,1
ADD CX,1
CMP CX,1000
JE OVER
JMP L0
OVER:
存儲器尋址練習題
例子1:
解答:(1)2KB=2x1024x8b 故2x1024x8)/(1024x8)=2片
(2)1024=2^10 故需要10根位址線
(3)2K=2^11 故需要11根位址線 其中1個片選 10個片内尋址
例子2:
解答:(1)(2x1024x8)/(1024x4)=4片
(2)1024=2^10 故需要10根位址線
(3)2K=2^11 故需要11根位址線尋址 其中1根做片選(每2片并一塊看成1組),10根片内尋址
例子3:
解答:紅箭頭訓示的地方 代表CS片選Y0低電平有效即A18 A17對應 0 0
A19 A18 A17 A 16 A15.....A0
0 0 0 0 0000 0000 0000 0000 最小範圍
0 0 0 1 1111 1111 1111 1111 最大範圍
故紅箭頭所指範圍為:00000H——1FFFFH
綠箭頭同理 隻不過A18 A17片選Y3有效 對應1 1 剩下的位擺出來位址範圍(最小是0 最大是1)即可
例子4:
Y0對應的片選信号有效 A11 A10=0 0固定下來兩位
擺出來位址範圍:
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1
即000H——3FFH
另外再分析一下這道題:1Kx4的晶片用了八片 組成了 4KB的存儲系統
其中 12根用作位址線 (4K=2^12) 2個片選(用來選八組晶片) 10個片内尋址
8253晶片題
例子1:
計時器8253-5通道0按方式3(方波發生器)工作,時鐘CLK0的頻率為1MHz,要求輸出方波的頻率為2000Hz,此時寫入的計數初值應為多少?輸出方波的“1”和“0”各占多少時間。假設通道0采用二進制方式計數,寫出初始化程式段。8253-5的端口為400H,401H,402H,403H。
解答:(1)初值計算方法:頻率/頻率 或者 周期/周期
1M=10^6 10^6/2000=500
(2)250x1/(10^6)=250x10^-6 s
(3)題目改成二進制 不考十進制
mov dx,403h ;控制端口
mov al,00111110B ;寫入控制字
out dx,al
mov ax,500 ;寫入初值
mov dx,400h ;計數器0
out dx,al
mov al,ah
out dx,al
例子2
級聯方式示意圖:
解答:計數器0的初值計算為 1000/1=1000
計數器1的初值為 (4+1)/(1)=5
Mov dx,803h
Mov al,00110100b
Out dx,al
Mov ax,1000
Mov dx,800h;0号計數器
Out dx,al
Mov al,ah
Out dx,al
Mov dx,803h
Mov al,01010100b
Out dx,al
Mov al,5
Mov dx,801h;1号計數器
Out dx,al