STACK16_SIZE dup (?)
có nghĩa là sao chép dữ liệu trong dấu ngoặc đơn bằng STACK16_SIZE
lần. Nó tương đương với cách viết ?, ?, ?, ?,
... (100h lần)
Dữ liệu trong các lần gọi là "dữ liệu chưa được khởi tạo". Nghĩa là, bộ nhớ được cấp phát nhưng không được đặt thành bất kỳ giá trị cụ thể nào khi tải.
Hội không cung cấp một loại "mảng". Nếu có, nó chỉ dành cho các trình gỡ rối để sử dụng khi kiểm tra dữ liệu. Tuy nhiên, trong đoạn mã này, stack16
là một biểu tượng có địa chỉ bắt đầu một khối bộ nhớ gồm các byte — là phần mềm trực quan và có khả năng là một nguồn của một lỗi nhỏ. Đối với một ngăn xếp CPU, nó thực sự phải được định nghĩa là các từ 16 bit (dw
) hoặc các từ 32 bit (dd
).
Nhưng loại nào là stack16? Tôi đến từ nền C, vì vậy tôi đã suy nghĩ về mảng. Hoặc nó giống như một trình giữ chỗ cho một địa chỉ bộ nhớ? I E. tất cả các biến trong TASM giống như 'void *' và có thể trỏ đến bất kỳ loại dữ liệu nào. Vì vậy, ở đây stack16 điểm đến phần tử đầu tiên của một mảng 100 byte. Đúng không? – sashoalm
Đừng bận tâm, tôi đã tìm thấy một lời giải thích tốt tại http://www.csi.ucd.ie/staff/jcarthy/home/alp/alp5.html – sashoalm
ARR1 DB 5 DUP (2) bạn nghĩ gì về biểu thức này? giá trị bên trong mảng là gì? – muco