👷Constants(hằng số)
Trong Assembly có 3 syntax để khai báo 1 hằng số và trong các ngày trước đó bạn có thể đã làm quen với equ rồi nên hôm nay mình sẽ nói chi tiết hơn:
equ%assign%define
EQU
EQUequ được sử dụng để xác định hằng số. Cú pháp của equ như sau:
CONSTANT_NAME EQU expression
Ex: age equ 20Sau khi khai báo thì bạn có thể trực tiếp sử dụng nó trong section .text bằng cách gọi trực tiếp nó:
mov eax, agecó thể trực tiếp tính toán các toán hạng lưu hằng số đó, ví dụ như:
length equ 0xa
width equ 0xf
Area equ width*lengthVà giá trị của Area sẽ là: 10* 16 = 160
%assign
%assign%assign có thể được sử dụng để xác định hằng số như equ. Cách dùng của nó như sau:
%assign age 20Instruction này tương đương với câu lệnh equ ở trên
%define
%defineTương tự như những cách ở trên, chỉ khác ở chỗ %define có chức năng giống với define của ngôn ngữ c, nó có thể sử dụng đối với các chuỗi:
Ví dụ:
%define pointer [EBP+4]cú pháp trên sẽ gán 1 con trỏ cho một chuỗi bất kì ở trên stack với offset là [ebp+4]
Last updated