







Preview text:
BÀI TẬP LỚN KIẾN TRÚC MÁY TÍNH
Bài 1: Môt Chip nhớ có Ạ 0 A15 đường địa chỉ, D0 D7 đường dữ liêu.̣ -
Tính dung lượng của chip nhớ trên. -
Vẽ sơ đồ thiết kế bô nhớ 64K x 16 bit.̣ Giải: -
Chip nhớ có 16 đường địa chỉ A0 A15 (n=16), có 8 đường dữ liệu D0 D7 (m=8) -
Dung lượng chip nhớ sẽ là: =2n x m (bit) = 216 x 8 (bits) = 64K -
Modul nhớ cần có: 16 đường địa chỉ (A15 ÷ A0), 16 đường dữ liệu (D15 ÷D0) A 15 ÷ A 0 D 15 ÷ D 8 D 7 ÷ D 0
Bài 2: Môt Chip nhớ có Ạ 0 A16 đường địa chỉ, D0 D15 đường dữ liêu.̣ -
Tính dung lượng của chip nhớ trên. -
Vẽ sơ đồ thiết kế bô nhớ 256K x 16 bit.̣ Giải: -
Chip nhớ có 17 đường địa chỉ A0 A16 (n=17), có 16 đường dữ liệu D0 D15 (m=16) -
Dung lượng chip nhớ sẽ là: =2n x m (bit) = 217 x 16 (bits) = 256K -
Modul nhớ cần có: 18 đường địa chỉ (A17 ÷ A0), 16 đường dữ liệu (D15 ÷D0) -
Sơ đồ dưới sửa A11 -> A16, D7 -> D15, A12 -> A17
Bài 3: Môt Chip nhớ có Ạ 0 A12 đường địa chỉ, D0 D7 đường dữ liêu.̣ -
Tính dung lượng của chip nhớ trên. -
Vẽ sơ đồ thiết kế bô nhớ 8K x 16 bit.̣
CPU -> Cache L1, L2, L3 (Level) -> RAM -> HDD, SSD,..
Bài 4: Giả sử không gian bộ nhớ vật lý = 2GB, dung lượng bộ nhớ CACHE = 512KB, kích thước Line
(Block) = 128 Byte. Tính số bit của các trường địa chỉ trong 3 trường hợp - Ánh xạ trực tiếp -
Ánh xạ liên kết toàn phần -
Ánh xạ liên kết tập hợp 4 đường. Giải:
* Ánh xạ trực tiếp
BNC = 2GB = 2N=231 byte => địa chỉ có N = 31 bit Cache= 512 KB = 219 byte
Line= 128 byte = 27 byte => W = 7 bit
Số Line trong cache = 219 / 27 = 212 Line => L =12 bit
Trường Tag: T= N-(W+L) = 31 - (7 + 12) =12 bit => T = 12 bit
* Ánh xạ liên kết toàn phần
BNC = 2GB = 231 byte => địa chỉ có N = 31 bit
Line= 128 byte = 27 byte => W = 7 bit
Trường Tag: T= N - W = 31 - 7 = 24 bit
* Ánh xạ liên kết tập hợp 4 đường
BNC = 2GB = 231 byte => địa chỉ có N = 31 bit
Cache= 512 KB = 219 byte
Line= 128 byte = 27 byte => W = 7 bit
Số Line trong cache = 219 / 27 = 212 Line
Một Set có 4 Line = 22 Line
=> Số Set trong cache = 212 / 22 = 210 Set => S=10 bit
Số bit của trường Tag sẽ là: T= N-(W+S) = 31 - (7+ 10) = 14 bit=> T=14 bit
Bài 5: Giả sử không gian bộ nhớ vật lý = 2GB, dung lượng bộ nhớ CACHE = 2MB, kích thước Line
(Block) = 256 Byte. Tính số bit của các trường địa chỉ trong 3 trường hợp - Ánh xạ trực tiếp -
Ánh xạ liên kết toàn phần -
Ánh xạ liên kết tập hợp 4 đường.
Bài 6: Giả sử không gian bộ nhớ vật lý = 4GB, dung lượng bộ nhớ CACHE = 1MB, kích thước Line
(Block) = 128 Byte. Tính số bit của các trường địa chỉ trong 3 trường hợp. - Ánh xạ trực tiếp -
Ánh xạ liên kết toàn phần -
Ánh xạ liên kết tập hợp 2 đường.
Bài 7: Giải thích các lệnh sau: MOV AL,5Bh MOV BL,0ADh ADD AL,BL
Hãy chỉ ra trạng thái của các cờ trong thanh ghi cờ sau khi thực hiện các lệnh trên.
Bài 8: Giải thích các lệnh sau: AX => AH,AL
MOV AX,170Fh ; Chuyển giá trị 170Fh vào thanh ghi AX
MOV BX,80EBh ; Chuyển giá trị 80EBh vào thanh ghi BX
ADD AX,BX ; Cộng giá trị trong thanh ghi AX với giá trị trong BX, kết quả lưu trong AX. Hãy
chỉ ra trạng thái của các cờ trong thanh ghi cờ sau khi thực hiện các lệnh trên. 170Fh = 0001011100001111b + 80EBh = 1000000011101011b 1b 0010111 11101010 CF = 0 - vì
phép toán không có nhớ (mượn) lên trên bit đầu tiên (MSB)
PF = 0 – vì tổng số bit 1 trong phần thấp của kết quả là lẻ
AF= 0 – vì phép toán không có nhờ từ bit thứ 8 sang bit thứ 9
OF= 0 – Vì cộng 2 số cùng dấu, không ra số trái dấu
ZF = 0 – vì kết quả khác 0 SF= 1 – vì bit MSB =1
Bài 9: Giải thích các lệnh sau: MOV AL,41h MOV BL,50h
CMP AL,BL ; so sánh giá trị trong thanh ghi AL với giá trị trong thanh ghi BL bằng cách lấy
AL-BL nhưng không lưu kết quả vào đâu cả.
Hãy chỉ ra trạng thái của các cờ trong thanh ghi cờ sau khi thực hiện các lệnh trên. 41h = 01000001b - 50h = 01010000b 01001111b
CF = 0 - vì phép toán không có nhớ (mượn) lên trên bit đầu tiên (MSB)
PF = 1 – vì tổng số bit 1 trong phần thấp của kết quả là chẵn
AF= 0 – vì phép toán không có nhờ từ bit thứ 8 sang bit thứ 9
OF= 0 – Vì trừ 2 số cùng dấu, không ra số trái dấu
ZF = 0 – vì kết quả khác 0 SF= 0 – vì bit MSB =0
MOV TH1,TH2; chuyển TH2 vào TH1
CMP TH1,TH2; So sánh TH1 với TH2, bằng cách lấy TH1-TH2
Bài 10: Giải thích các lệnh sau:
MOV AX,3D85h; Chuyển hằng số 3D85h vào thanh ghi AX
MOV BX,2CFEh; Chuyển hằng số 2CFEh vào thanh ghi BX
CMP AX,BX ; thực hiện AX trừ BX 3D85h-2CFEh => 0011 1101 1000 0101 - 0010 1100 1111 1110 = 0010 1100 1111 1110
Hãy chỉ ra trạng thái của các cờ trong thanh ghi cờ sau khi thực hiện các lệnh trên. CF=0
vì không có nhớ hoặc có vay mượn lên trên bit đầu tiên (MSB)
PF=0 vì số bit 1 trong kết quả ở phần thấp là lẻ
AF=0 vì không có nhớ từ bit 7 sang bit 8
ZF=0 vì tất cả các bit của kết quả khác giá trị 0. SF=0 vì bit MSB = 0
OF = 0 vì kết quả không nằm ngoài giới hạn cho phép
Bài 7: Giải thích các lệnh sau: MOV AL,5Bh MOV BL,0ADh ADD AL,BL; AL=AL+BL
Hãy chỉ ra trạng thái của các cờ trong thanh ghi cờ sau khi thực hiện các lệnh trên.
Bài 11: - Giải thích cách xác định địa chỉ vật lý của một ô nhớ trong bộ nhớ. -
Giả sử địa chỉ một ô nhớ được xác định qua thanh ghi đoạn DS và thanh ghi lệch BX với
DS=0F35h, BX=150Dh. Hãy xác định địa chỉ vật lý và địa chỉ logic của ô nhớ trên. Ô nhớ trên thuộc
đoạn nào trong bộ nhớ.
Bài 12: - Giải thích cách xác định địa chỉ vật lý của một ô nhớ trong bộ nhớ. -
Giả sử địa chỉ một ô nhớ được xác định qua thanh ghi đoạn CS và thanh ghi lệch IP với
CS=4530h, IP=49A6h. Hãy xác định địa chỉ vật lý và địa chỉ logic của ô nhớ trên. Ô nhớ trên thuộc
đoạn nào trong bộ nhớ.
Bài 13: - Giải thích cách xác định địa chỉ vật lý của một ô nhớ trong bộ nhớ. -
Giả sử địa chỉ một ô nhớ được xác định qua thanh ghi đoạn ES và thanh ghi lệch DI với
ES=1793h, DI=2004h. Hãy xác định địa chỉ vật lý và địa chỉ logic của ô nhớ trên. Ô nhớ trên thuộc đoạn nào trong bộ nhớ.
Bài 14: - Giải thích cách xác định địa chỉ vật lý của một ô nhớ trong bộ nhớ. -
Giả sử địa chỉ một ô nhớ được xác định qua thanh ghi đoạn SS và thanh ghi lệch SP với
SS=11080, SP=2004. Hãy xác định địa chỉ vật lý và địa chỉ logic của ô nhớ trên. Ô nhớ trên thuộc đoạn nào trong bộ nhớ.
Bài 15: Giải thích các lệnh trong đoạn chương trình sau: MOV AX,02B5h MOV CX,5 SHL AX,CX ;
Hãy cho biết giá trị của thanh ghi AX sau mỗi lần dịch
Bài 16: Giải thích các lệnh trong đoạn chương trình sau: MOV AX,0446h MOV CX,4 SHR AX,CX; dịch phải bit
Hãy cho biết giá trị của thanh ghi AX sau mỗi lần dịch
Bài 17: Giải thích các lệnh trong đoạn chương trình sau: MOV AX,2534 MOV BX,5000 MUL BX
Sau khi thực hiện các lệnh trên, kết quả sẽ được đưa vào các thanh ghi nào? Giá trị của các thanh ghi đó là bao nhiêu?
Bài 18: Giải thích các lệnh trong đoạn chương trình sau: MOV AL,7Fh MOV BL,13h MUL BL
Sau khi thực hiện các lệnh trên, kết quả sẽ được đưa vào các thanh ghi nào? Giá trị của các thanh ghi đó là bao nhiêu?
Bài 19: Giải thích các lệnh trong đoạn chương trình sau: MOV AX,2500 MOV BL,50 DIV BL
Sau khi thực hiện các lệnh trên, kết quả sẽ được đưa vào các thanh ghi nào? Giá trị của các thanh ghi đó là bao nhiêu?
Bài 20: Giải thích các lệnh trong đoạn chương trình sau: MOV DX,6400 MOV AX,2000 MOV BX,10000 DIV BX
Sau khi thực hiện các lệnh trên, kết quả sẽ được đưa vào các thanh ghi nào? Giá trị của các thanh ghi đó là bao nhiêu?
Bài 21: Hãy giải thích và chỉ ra chế độ địa chỉ của các lệnh sau:
a/ MOV AX,058Dh b/ MOV AL,[BX] c/ MOV AX,[BP]+[SI]+0100h d/ MOV
BL,[0653h] e/ MOV AX,[SI]+50 f/ ADD DX,53h[BX][SI] g/ ADD AL,3Bh[SI] h/ MOV BX,7Ch[BP]
Bài 22: Hãy giải thích và chỉ ra chế độ địa chỉ của các lệnh sau: a/ MOV AX,[0123h]
- Chuyển nội dung 2 ô nhớ liên tiếp có địa chỉ DS:0123h và DS:0124h vào thanh ghi AX
- Chế độ địa chỉ trực tiếp b/ MOV DX,1110h
- Chuyển 1110h vào thanh ghi DX - Chế độ tức thì c/ MOV AX, [DI]+[BP]+0505h
- Chuyển nội dung 2 ô nhớ liên tiếp có địa chỉ DS: [DI]+[BP]+0505h và DS: [DI]+[BP]
+0506h vào thanh ghi AX - Chế độ tương đối chỉ số cơ sở d/ MOV BL,[SI]+100
- Chuyển nội dung ô nhớ có địa chỉ DS:SI+100 vào thanh ghi BL
- Chế độ tương đối chỉ số e/ MOV AX,[BX]+50
- Chuyển nội dung 2 ô nhớ liên tiếp có địa chỉ DS:BX+50 và DS:BX+51 vào thanh ghi AX
- Chế độ tương đối cơ sở f/ ADD DX,41h[BX][SI]
- Cộng nội dung 2 ô nhớ liên tiếp có địa chỉ DS: [BX]+[SI]+41h và DS: [BX]+[SI]+42h vào thanh ghi DX
- Chế độ tương đối chỉ số cơ sở g/ ADD DL,7Dh[BP]
- Cộng nội dung ô nhớ có địa chỉ DS:BP+7Dh vào thanh ghi DL
- Chế độ tương đối cơ sở h/ MOV DX,170Ch[SI]
- Chuyển nội dung 2 ô nhớ liên tiếp có địa chỉ DS:SI+170Ch và DS:SI+170Dh vào thanh ghi DX
- Chế độ tương đối chỉ số
Bài 23: Hãy giải thích và chỉ ra chế độ địa chỉ của các lệnh sau: a/ MOV DX,[BP] +15 b/ ADD AL,[DI]+100h c/ MOV CX, 255 d/ MOV CL,[BX] e/ MOV AX,[DI]+120 f/ ADD CX,3Dh[DI] g/ ADD DL,6Ch[SI] h/ MOV DX,145Dh[BX][DI]
Bài 24: Hãy giải thích và chỉ ra chế độ địa chỉ của các lệnh sau: a/ MOV AX,[BX]+120 b/ MOV DL,[3A4Eh] c/ MOV AX, [SI]+0505h d/ MOV BL,100 e/ MOV AX,[SI]+500 f/ ADD DX,6Bh[BX][DI] g/ ADD DL,4Eh[DI] h/ MOV CX,1000
Bài 25: Giả sử có một đoạn mã lệnh giả lập sau: AL=63h; FOR CX=80 DOWNTO 0 DO Write(char(AL));
Hãy chuyển thành mã lệnh gợi nhớ của bộ vi xử lý 8086. MOV AL,63h ; gán AL=63h MOV CX,80
TTUC: MOV AH,2 ; in ra màn hình 1 ký tự
MOV DL,AL ;chuyển AL -> DL và in ra ký tự trong thanh ghi DL INT 21H DEC CX ; SUB CX,1 CX=CX-1
CMP CX,0; so sánh CX với 0
JNE TTUC; nhảy đến nhãn TTUC nếu không bằng 0 (CX khác 0)
MOV AH,4CH; thoát khỏi chương trình INT 21H
Bài 26: Giả sử có một đoạn mã lệnh giả lập sau: AL=41h; REPEAT Write(char(AL)); AL=AL+1; UNTIL AL>=5Bh;
Hãy chuyển thành mã lệnh gợi nhớ của bộ vi xử lý 8086. MOV AL,41H; gán AL=41h
TTUC: MOV AH,2 ; in ra màn hình AL MOV DL,AL INT 21H INC AL; AL=AL+1
CMP AL,5BH; so sánh AL với 5Bh
JL TTUC; nhảy đến nhãn TTUC nếu nhỏ hơn MOV AH,4CH INT 21H
Bài 27: Giả sử có một đoạn mã lệnh giả lập sau: IF (AL=41h) OR (AL=61h) THEN Write(char(AL)) ELSE Write(tbsai); MOV AH,09H LEA DX,tbsai INT 21H
Hãy chuyển thành mã lệnh gợi nhớ của bộ vi xử lý 8086.
Bài 28: Giả sử có một đoạn mã lệnh giả lập sau: AL=41h; FOR CX=2000 DOWNTO 0 DO Write(char(AL));
Hãy chuyển thành mã lệnh gợi nhớ của bộ vi xử lý 8086.
Bài 29: Giả sử có một đoạn mã lệnh giả lập sau:
IF (AL>=41h) AND (AL<=5Ah) THEN Write(char(AL));
Hãy chuyển thành mã lệnh gợi nhớ của bộ vi xử lý 8086.
Bài 30: Giả sử có một đoạn mã lệnh giả lập sau: AL=41h; CL=19h WHILE (CL >=0) DO BEGIN Write(char(AL)); AL = AL + 1; CL = CL - 1; END;
Hãy chuyển thành mã lệnh gợi nhớ của bộ vi xử lý 8086