You are on page 1of 6

1- 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
Ví dụ1:
Cho AX = 3488h -> thực hiện lệnh ADD AX,BX
BX = 2212h -> tìm AX và xác định các bit của FR
Giải: Thời gian thực hiện lệnh:
AX= AX+ BX= 569Ah = 0101 0110 1001 1010
OF=0 ( không bị tràn)
AF= 0 ( không nhớ từ bit BCD thấp sang BCD cao )
CF= 0 ( không nhớ)
ZF= 0 ( kết quả khác 0)
PF= 1( tổng số bit 1 trong kết quả chẵn)
SF=0( số dương)
- Sự thay đổi bộ nhớ:
Trước Sau
AX= 3488h AX= 569Ah
BX= 2212h BX= 2212h
• Mã lệnh
- Dữ liệu từ thanh ghi đến thanh ghi

0 0 0 0 0 0 d w

mod reg r/m

- Dữ liệu trực tiếp đến thanh ghi

1 0 0 0 0 0 s w 0 0 0

mod r/m data data


if s w = 01
Lệnh ADC
• Lệnh cộng có nhớ hai toán hạng
• Cú pháp: ADC Đích, nguồn
• Thực hiện: Đích = Đích + nguồn + CF
• 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
• Ví dụ:
ADD AL, 30H
ADC AX, BX
• Thời gian thực hiện
Code C:
int a = 1234, b = 303;
a = a+b;
• Mã lệnh

- Dữ liệu từ thanh ghi đến thanh ghi


VD: ADC AX, BX

0 0 0 1 0 0 d w

mod reg r/m

- Dữ liệu trực tiếp đến thanh ghi


VD: ADC AX, 1234h

1 0 0 0 0 0 s w 0 1 0

mod r/m data data


if s w = 01

You might also like