Bài giảng Kiến trúc máy tính - Chương: Lập trình hợp ngữ

Môn học: Kiến trúc máy tính  
Nội dung  
tả tập lệnh của 8086  
• Lập trình hợp ngữ 8086  
Nội dung  
tả tập lệnh của 8086  
Các lệnh di chuyển dữ liệu  
Các lệnh số học và logic  
Các lệnh điều khiển chương trình  
• Lập trình hợp ngữ với 8086  
Các lệnh di chuyển dữ liệu  
MOV, XCHG, POP, PUSH, POPF, PUSHF, IN, OUT  
Các lệnh di chuyển chuỗi MOVS, MOVSB, MOVSW  
MOV  
Dùng để chuyển giữa các thanh ghi, giữa 1 thanh ghi và 1 ô nhớ hoặc  
chuyển 1 số vào thanh ghi hoặc ô nhớ  
Cú pháp: MOV Đích, nguồn  
Lệnh này không tác động đến cờ  
dụ:  
MOV AX, BX  
MOV AH, „A‟  
MOV AL, [1234H]  
Các lệnh di chuyển dữ liệu  
• Lệnh XCHG  
Dùng để hoán chuyển nội dung giữa hai thanh ghi, giữa 1 thanh ghi và 1 ô nhớ  
Cú pháp: XCHG Đích, nguồn  
Giới hạn: toán hạng không được là thanh ghi đoạn  
Lệnh này không tác động đến cờ  
Ví dụ:  
XCHG AX, BX  
XCHG AX, [BX]  
Các lệnh di chuyển dữ liệu  
• Lệnh PUSH  
Dùng để cất 1 từ từ thanh ghi hoặc ô nhớ vào đỉnh ngăn xếp  
Cú pháp: PUSH Nguồn  
tả: SP=SP-2, Nguồn => {SP}  
Giới hạn: thanh ghi 16 bit hoặc là 1 từ nhớ  
Lệnh này không tác động đến cờ  
dụ:  
PUSH BX  
PUSH PTR[BX]  
• Lệnh PUSHF  
Cất nội dung của thanh ghi cờ vào ngăn xếp  
Các lệnh di chuyển dữ liệu  
• Lệnh POP  
Dùng để lấy lại 1 từ vào thanh ghi hoặc ô nhớ từ đỉnh ngăn xếp  
Cú pháp: POP Đích  
Mô tả: {SP} => Đích, SP=SP+2  
Giới hạn: thanh ghi 16 bit (trừ CS) hoặc là 1 từ nhớ  
Lệnh này không tác động đến cờ  
Ví dụ:  
POP BX  
POP PTR[BX]  
• Lệnh POPF  
Lấy 1 từ từ đỉnh ngăn xếp rồi đưa vào thanh ghi cờ  
Nội dung  
tả tập lệnh của 8086  
Các lệnh di chuyển dữ liệu  
Các lệnh số học và logic  
Các lệnh điều khiển chương trình  
• Lập trình hợp ngữ với 8086  
Các lệnh số học và logic  
• Lệnh số học: ADD, SUB, MUL, IMUL, DIV, IDIV, INC, DEC  
• Lệnh Logic: AND, OR, NOT, NEG, XOR  
• Lệnh quay và dịch: ROL, ROR, SAR, SHL, SHR  
• Lệnh so sánh: CMP  
Các lệnh số học và logic  
• Lệnh ADD  
Lệnh cộng hai toán hạng  
Cú pháp: ADD Đích, nguồn  
Thực hiện: Đích=Đích + nguồn  
Giới hạn: toán hạng không được là 2 ô nhớ và thanh ghi đoạn  
Lệnh này thay đổi cờ: AF, CF, OF, PF, SF, ZF  
dụ:  
ADD AX, BX  
ADD AX, 40H  
• Lệnh SUB  
Lệnh trừ  
Cú pháp: SUB Đích, nguồn  
Thực hiện: Đích=Đích - nguồn  
Giới hạn: toán hạng không được là 2 ô nhớ và thanh ghi đoạn  
Lệnh này thay đổi cờ: AF, CF, OF, PF, SF, ZF  
dụ:  
SUB AL, 30H  
Các lệnh số học và logic  
• Lệnh MUL  
Lệnh nhân số không dấu  
Cú pháp: MUL nguồn  
Thực hiện:  
AX=AL* nguồn8bit  
DXAX=AX*nguồn16bit  
Lệnh này thay đổi cờ: CF, OF  
Ví dụ:  
MUL BL  
• Lệnh IMUL  
nhân số có dấu  
Các lệnh số học và logic  
• Lệnh DIV  
Lệnh chia 2 số không dấu  
Cú pháp: DIV nguồn  
Thực hiện:  
AL = thương (AX / nguồn8bit) ; AH=dư (AX / nguồn8bit)  
AX = thương (DXAX / nguồn16bit) ; DX=dư (DXAX / nguồn16bit)  
Lệnh này không thay đổi cờ  
dụ:  
DIV BL  
• Lệnh IDIV  
chia 2 số dấu  
Các lệnh số học và logic  
• Lệnh INC  
Lệnh cộng 1 vào toán hạng là thanh ghi hoặc ô nhớ  
Cú pháp: INC Đích  
Thực hiện: Đích=Đích + 1  
Lệnh này thay đổi cờ: AF, OF, PF, SF, ZF  
Ví dụ:  
INC AX  
• Lệnh DEC  
Lệnh trừ 1 từ nội dung một thanh ghi hoặc ô nhớ  
Cú pháp: DEC Đích  
Thực hiện: Đích=Đích - 1  
Lệnh này thay đổi cờ: AF, OF, PF, SF, ZF  
Ví dụ:  
DEC [BX]  
Các lệnh số học và logic  
• Lệnh AND  
Lệnh AND logic 2 toán hạng  
Cú pháp: AND Đích, nguồn  
Thực hiện: Đích=Đích And nguồn  
Giới hạn: toán hạng không được là 2 ô nhớ hoặc thanh ghi đoạn  
Lệnh này thay đổi cờ: PF, SF, ZF và xoá cờ CF, OF  
Ví dụ:  
AND BL, 0FH  
• Lệnh XOR, OR: tương tự như lệnh AND  
• Lệnh NOT: đảo từng bit của toán hạng  
• Lệnh NEG: xác định số bù 2 của toán hạng  
Các lệnh số học và logic  
• Lệnh CMP  
Lệnh so sánh 2 byte hoặc 2 từ  
Cú pháp: CMP Đích, nguồn  
Thực hiện:  
Đích = nguồn : CF=0 ZF=1  
Đích> nguồn : CF=0 ZF=0  
Đích < nguồn : CF=1 ZF=0  
Giới hạn: toán hạng phải cùng độ dài và không được là 2 ô nhớ  
Các lệnh số học và logic  
• Lệnh ROL  
Lệnh quay trái  
Cú pháp: ROL Đích, CL (với số lần quay lớn hơn 1)  
ROL Đích, 1  
ROL Đích, Số lần quay (80286 trở lên)  
Thực hiện: quay trái đích CL lần  
Đích là thanh ghi (trừ thanh ghi đoạn) hoặc ô nhớ  
Lệnh này thay đổi cờ: CF, OF  
LSB  
CF  
MSB  
• Lệnh ROR  
Lệnh quay phải  
Các lệnh số học và logic  
• Lệnh SHL  
Lệnh dịch trái logic  
Cú pháp: SHL Đích, CL (với số lần dịch lớn hơn 1)  
SHL Đích, 1  
SHL Đích, số lần dịch (80286 trở lên)  
Thực hiện: dịch trái đích CL bit tương đương với Đích=Đích*2CL  
Lệnh này thay đổi cờ SF, ZF, PF  
LSB  
CF  
MSB  
0
Các lệnh số học và logic  
• Lệnh SAR  
Lệnh dịch phải số học  
Cú pháp: SAR Đích, CL (với số lần dịch lớn hơn 1)  
SAR Đích, 1  
hoặc SAR Đích, số lần dịch (80286 trở lên)  
Thực hiện: dịch phải đích CL bit, MSB giữ nguyên  
Lệnh này thay đổi cờ SF, ZF, PF, CF mang giá trị của MSB  
LSB  
CF  
MSB  
Các lệnh số học và logic  
• Lệnh SHR  
Lệnh dịch phải logic  
Cú pháp: SHR Đích, CL (với số lần dịch lớn hơn 1)  
SHR Đích, 1  
hoặc SHR Đích, số lần dịch (80286 trở lên)  
Thực hiện: dịch phải đích CL bit  
Lệnh này thay đổi cờ SF, ZF, PF, CF mang giá trị của LSB  
LSB  
CF  
MSB  
0
Chú ý:  
Trong các lệnh dịch và quay, toán hạng không được là thanh ghi đoạn  
Nội dung  
tả tập lệnh của 8086  
Các lệnh di chuyển dữ liệu  
Các lệnh số học và logic  
Các lệnh điều khiển chương trình  
Lệnh nhảy không điều kiện: JMP  
Lệnh nhảy điều kiện  
Lệnh lặp LOOP  
Lệnh gọi chương trình con phục vụ ngắt INT 21H  
• Lập trình hợp ngữ với 8086  
Tải về để xem bản đầy đủ
pdf 64 trang yennguyen 09/04/2022 6560
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương: Lập trình hợp ngữ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_bai_lap_trinh_hop_ngu.pdf