Tải bản đầy đủ (.pdf) (49 trang)

Kiến trúc máy tính PHẦN II HỢP NGỮ - Chương 1 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (222.5 KB, 49 trang )

PHẦN II
HỢP NGỮ
Chương5
TỔNG QUAN VỀ HỢP NGỮ
Nộidung
•Giớithiệuvềhợpngữ
•Lậptrìnhvớihợpngữ
•Vídụmẫu
•Bàitập
I.Giớithiệu
• Hợpngữ -Assembly
• Trìnhdịchhợpngữ -Assembler
• So sánhngônngữ máyvàhợpngữ
Ngônngữ máy Hợpngữ
5601:0100
5601:0102
5601:0105
B4.02
80.C2.30
50
MOVAH, 2
ADDDL,30
PUSHAX
Hợpngữ
• Ngônngữ lậptrìnhcấpthấp, dùngdạnggợi
nhớ củatậplệnh
mnemonic [operand1 [,operand2]
• Các đặc điểm:
– Thựcthinhanh
– Kích thước nhỏ
– Xử lýtrựctiếphệthống


– Cóthể viết trên mọi hệ điều hành, mọi CPU
– Khóviết
Cúphápcủalệnhhợpngữ
• Bộ kýtự
–Chữ cáilatinh: A Z, a z
– Chữ số thậpphân: 0 9
– Cáckýtựđặcbiệt: ? @ _ $ : . [ ] ( ) < > …
– Cáckýtựcách: SP, Tab
• Từ vựng:
– Từ khóa(keyword)
– Tên(Symbol, name)
Từ khóa
• Têndànhriêngcủahợpngữ
– Têncácthanhghi
– Têngợinhớ
– Têntoántử
–…
Đặttên
• Tênhằng, tênbiến, tênnhãn…do ngườilập
trình đặtra
• Bắt đầucủatênkhônglàsố
• Tênkhông đượctrùngvớitừkhóa
• Têntốiđa31 kýtự
Cúphápcủamộtlệnhhợp
ngữ
[label:] mnemonic [operand1 [,operand2]] [; comment]
-Nhãnthaythế địachỉ
câulệnh.
-Ngườilậptrìnhtựđặt

-Từgợinhớ xác định
hành độngcủacâulệnh
-Tratrongtậplệnh
-Cáctoánhạng, ngăn
cáchbởidấu,
-Chúthích
Chươngtrìnhhợpngữ
• Baogồmcácphátbiểuhợpngữ
(assembly language instruction)
• Lệnhhợpngữ
– >lệnhnhị phân/mãmáy
• Chỉ dẫnbiêndịch(assembler directive)
– >không cólệnh nhị phân tương ứng
– >Tuântheocúphápcủaassembler
Tổ chứcbộnhớ
• Địachỉ ô nhớ
• Các đơnvị
Tổ chứcthanhghi
• CPU16bit vàCPU 32bit
ThanhghicủaCPU 8086
• Gồm14 thanhghi, mỗithanhghi16 bit
• Chialàm5 nhóm:
– Nhómthanhghi đoạn
– Nhómthanhghi đadụng
– Nhómthanhghicon trỏ vàchỉ mục
– Thanhghicon trỏ lệnh
– Thanhghicờhiệu
Nhóm1: cácthanhghi đoạn
• Segment registers
• Chứa địachỉđoạn(segment)

• 4 thanhghi:
– CS (Code segment register)
– DS (Data segment register)
– ES (Extra data segment register)
– SS (Stack segment register)
Quảnlýbộnhớ vớithanhghi
đoạn
Nhóm2: cácthanhghi đa
dụng
• General purpose registers
• Chứacáctoánhạng, dữ liệu
• Gồm4 thanhghi16 bit
– AX (Accumulator Register)
– BX (Base Register)
– CX (Count Register)
– DX (Data Register)
Nhómthanhghi đadụng(t.t)
• Mỗithanhghi đadụng16bit cóthểđượcsử
dụngnhư 1 cặpthanhghi8bit
Thanhghi16bit 8bit cao
8 bit thấp
AX
AX AH AL
BX
BX BH BL
CX
CX CH CL
DX
DX DH DL
Bit 1514131211109876543210

AX
AHAL
Nhóm3: Cácthanhghicon trỏ vàchỉ
mục
• Gồm4 thanhghi
– SI (Source Indexed register)
– DI (Destination Indexed register)
– SP (Stack Pointer register)
– BP (Base Pointer register)
Nhóm4: Thanhghicon trỏ chươngtrình
• IP (Instruction Pointer register)
• Lệnhkếtiếpsẽthựchiện ởđịachỉ:
CS:IP
Nhóm5: Thanhghicờhiệu
• Flag register
• Gồmcáccờhiệu
CF: Carry Flag
AF: Auxiliary Flag
ZF: Zero Flag
OF: Overflow Flag
SF: Signed Flag
PF: Parity Flag
DF: Direction Flag
TF: Trap Flag
IF: InteruptEnable Flag
Tổ chứcngắt
• Ngắtcứng: (hard interupt)
IRQ0: timerIRQ4: COM1
IRQ1: keyboardIRQ5: Hard disk
IRQ2: chomáyATIRQ6: Floppy disk

IRQ3: COM2IRQ7: Parallel port
àcácngắtnàycóthể chắn đượcbởilệnhCLI
• Ngắtkhôngchắn đượcNMI
– độưutiêncaonhất
– báosựnguyhiểmnhư sụtáphay hư hỏngbộnhớ
Tổ chứcngắt(t.t)
• Ngắtnộibộ(internal interupt)
– phátsinhbởiCPU
– “divide by zero”, “overflow”, “trap”
• Ngắtmềm(soft interupt)
– gọi1 chươngtrìnhcon cósẳntrongROM hay
RAM
Bảngvector ngắt
• bảngchiềudài1KB nằmtrongbộnhớ bắt đầu
từ 0000:0000 đến0000:03FF
• gồm256 phầntử, mỗiphầntửchiếm4 byte
chứagiátrị segment vàoffset củachươngtrình
xử lýngắt
00h ÷1Fh : ngắttrongROM
20h ÷2Fh: ngắtmềmcủaDOS
30h ÷FFh: ngắtmềmdo ngườidùng địnhnghĩa
Sử dụngngắtmềm21h chocácthao
tácxuấtnhập
• Sử dụngcáclệnhIN / OUT chocácthaotác
xuấtnhậpcácthiếtbịngoạivi ?
– đòihỏingườilậptrìnhphảiam hiểuphầncứng
– tùytheocácloạimáytínhmàsốhiệucổngcủacác
thiếtbịngoạivi cóthể khác.
• Cácnhàsảnxuấtmáytính đãcungcấpsẳncác
chươngtrìnhphụcvụvàoracơbản

–ngườilậptrìnhsẽgọithôngqua lờigọingắt:
INT số_hiệu_ngắt

×