CÁC LỆNH HỢP NGỮ<br />
<br />
Nhắc lại phương pháp định địa chỉ<br />
<br />
<br />
Tức thời (trực hằng)<br />
<br />
<br />
<br />
<br />
Thanh ghi<br />
<br />
<br />
<br />
<br />
Địa chỉ toán hạng là tổng nội dung thanh ghi và độ dời<br />
<br />
Tương đối<br />
<br />
<br />
<br />
<br />
Địa chỉ trong lệnh là địa chỉ ô nhớ của toán hạng<br />
<br />
Chỉ số (dịch chuyển)<br />
<br />
<br />
<br />
<br />
Thanh ghi chứa địa chỉ ô nhớ của toán hạng<br />
<br />
Gián tiếp ô nhớ<br />
<br />
<br />
<br />
<br />
Địa chỉ trong lệnh là địa chỉ ô nhớ của toán hạng<br />
<br />
Gián tiếp qua thanh ghi<br />
<br />
<br />
<br />
<br />
Toán hạng trong thanh ghi<br />
<br />
Trực tiếp<br />
<br />
<br />
<br />
<br />
Toán hạng trong lệnh<br />
<br />
Tổng nội dung PC và độ dời<br />
<br />
Stack<br />
<br />
<br />
Thanh ghi SP chứa địa chỉ ô nhớ của toán hạng<br />
<br />
Thanh ghi CPU 8086<br />
<br />
<br />
<br />
14 thanh ghi 16 bit<br />
5 nhóm<br />
<br />
<br />
Thanh ghi đoạn<br />
<br />
<br />
<br />
<br />
Thanh ghi con trỏ<br />
<br />
<br />
<br />
<br />
<br />
<br />
IP (instruction pointer), SP (stack pointer),<br />
BP (base pointer)<br />
<br />
Thanh ghi chỉ số<br />
<br />
<br />
<br />
<br />
CS (code segment), DS (data segment),<br />
SS (stack segment), ES (extra segment)<br />
<br />
SI (source index), DI (Destination index)<br />
<br />
Thanh ghi đa dụng<br />
Thanh ghi cờ<br />
<br />
Thanh ghi đa dụng<br />
<br />
<br />
AX Accumulator register<br />
<br />
<br />
<br />
<br />
BX Base register<br />
<br />
<br />
<br />
<br />
Sử dụng cho vòng lặp<br />
<br />
DX Data register<br />
<br />
<br />
<br />
<br />
Thanh ghi duy nhất có thể sử dụng chỉ số<br />
<br />
CX Counter register<br />
<br />
<br />
<br />
<br />
Sử dụng cho tính toán và xuất nhập<br />
<br />
Sử dụng cho xuất nhập và các lệnh nhân chia<br />
<br />
Các thanh ghi đa dụng có thể “chia nhỏ” thành 2<br />
thanh ghi 8-bit (cao và thấp)<br />
<br />
<br />
AH,AL,BH,BL,CH,CL,DH,DL<br />
<br />
Thanh ghi cờ (Flag)<br />
Flags Register<br />
Tắt<br />
OF<br />
DF<br />
IF<br />
TF<br />
SF<br />
ZF<br />
AF<br />
PF<br />
CF<br />
<br />
Tên<br />
Overflow<br />
Direction<br />
Interrupt<br />
Trap<br />
Sign<br />
Zero<br />
Auxiliary Carry<br />
Parity<br />
Carry<br />
<br />
bit n<br />
11<br />
10<br />
9<br />
8<br />
7<br />
6<br />
4<br />
2<br />
0<br />
<br />
“Mô tả”<br />
Tràn số có dấu<br />
Hướng xử lý chuỗi<br />
Cho phép ngắt<br />
CPU thực hiện từng bước<br />
Kiểm tra kết quả là số âm<br />
Kiểm tra kết quả bằng 0<br />
Kiểm tra số bit 1 chẵn<br />
Tràn số không dấu<br />
<br />