You are on page 1of 3

ASSEMBLY 8086 BASIC

 Intel =AT&T : Opcode Operand1 , Operand2


Mã vận hành Toán hạn
Mã Vận hành: Dùng để ra lệnh các hành động như lưu / nạp / cộng / trừ
Toán hạn: là các giá trị, đối tượng đang thao tác.

VD: ADD Operand1, Operand2


 Operand1 + Operand2

Sự khác biệt giữa Intel và AT&T:


Intel : Constant number  biểu diễn bằng chính con số 1 2 3 4 5 6 7 8 9 0
AT&T:  biểu diễn thêm kí tự trước con số : &1 &2 &3 &4 &5 &6 &7 &8 &9 &0

Register:
+> Intel: rax, rbx, rcx, rdx
+> AT&T: &rax, &rbx, &rcx, &rdx

Memory Address: EAX Address


+> Intel: [EAX] VD: [EAX + 4]
+> AT&T: (EAX) VD: 4(EAX)

REGISTER: (Thanh ghi):


- EAX ( Extended Accumlator Register): Được sử dụng thường xuyên nhất và được sử
dụng trong các phép toán như : + / - và lưu giá trị trả về.
- EBX ( Extended Base Register) : tương tự EAX nhưng không lưu giá trị trả về.
- ECX ( Extended Counter Register) : Thanh ghi đếm. Có vai trò như i trong vòng lặp for.
- EDX ( Extended Data Register): là thanh ghi dự phòng cho thanh ghi EAX EBX ECX
nếu không đủ.
- ESI (Extended Source Index): Lưu dữ liệu nguồn mỗi khi sao chép.
- EDI (Extended Destination Index): Lưu địa chỉ đích mỗi khi thực hiện sao chép.
- ESP (Extended Stack Pointer): Lưu điểm cuối cùng của khung stack
- EBP (Extended Base Pointer): Lưu điểm bắt đầu của khung stack.
AX EAX RAX
BX EBX RBX
16BIT CX 32BIT ECX 64BIT RCX
DX EDX RDX

OPCODE (Mã vận hành)


- PUSH : Bỏ giá trị vào bên trong STACK
VD: PUSH EBP  bỏ giá trị EBP vào Stack.
- POP: Lấy giá trị ra khỏi STACK
VD: POP EBP  lấy giá trị EBP ra khỏi Stack.
- MOV : lệnh để đưa giá trị vào.
VD: MOV EAX , ECX  Bỏ ECX vào EAX
- LEA : lệnh để đưa địa chỉ vào.
VD: ESI = 0x001111 (Adreress)
ESI = 45 (Value)
 MOV EAX, [ ESI] : bỏ giá trị 45 vào EAX
 LEA EAX, [ESI] : bỏ địa chỉ 0x001111 vào EAX

- ADD: cộng.
VD: ADD EAX, 1 : cộng 1 vào EAX
- SUB: trừ.
VD: SUB EAX, 1 : trừ 1 khỏi EAX
- CMP: dùng để so sánh 2 toán hạng.
- INC: tăng (++)
- DEC: giảm (--)
- CALL func : dùng để gọi hàm
- RET: dùng để kết thúc hàm được gọi bởi CALL và ra lệnh để di chuyển qua các câu
lệnh sau CALL
- NOP: lệnh không làm gì cả.

You might also like