👷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 đượ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 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

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