من بیسکام کار نمیکنم، اما از help اون این مطلب رو میگم :
کد:
Dim x as Long at $60 'long uses 60,61,62 and 63 hex of SRAM
Dim B1 As Byte At $60 Overlay '$60 is the same as &H60
Dim B2 As Byte At $61 Overlay
یعنی تو این مثال شما اومدین تو خونه 60& یک عدد long که 4 بایتی هست رو تعریف کردین.
حالا اومدین دو بایت اولش رو اسم گذاشتین.
overlay در اصل (البته اینطور که من فهمیدم) یه جورایی کاربرد union رو در C داره.(البته خیلی محدود).
یا مثلا تو این مثال :
کد:
Dim Array(5) As Byte
Dim My_string As String * 4 At Array Overlay
Dim K As Byte
K = 1
My_string = "Test"
'---> 4 ASCII but 5 Bytes because of 0 Termination of String which is another byte
'This is how it will be stored in SRAM
' Array(1) Array(2) Array(3) Array(4) Array(5)
' +--------+--------+--------+--------+--------+
' | T | e | s | t | 00 |
' +--------+--------+--------+--------+--------+
Print Chr(array(1))
Print Chr(array(2))
همونطور که میبینید متغیر Array و My_string دقیقا در یک محل از حافظه قرار گرفتند.
از این دستور برای دسترسی به بایتهای مختلف یک متغیر چند بایتی میتونید استفاده کنید.
دیدگاه