👷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
EQU
equ
đượ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 20
Sau 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, age
có 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*length
Và 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 20
Instruction này tương đương với câu lệnh equ ở trên
%define
%define
Tươ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