CS Assembly Language Programming Period 13
หมายเหตุ สามารถใช้ ตัวแปร และ location counter ซึ่ง แทนด้วย $ ตรงนิพจน์ค่าคงที่ได้ เช่น data_seg segment a dw ; need 2 bytes a_stringdb“This is a string” ; need 16 bytes a_string_lengthdb$-a_string; $ is location counter data_seg ends ในที่นี้ a_string เป็นค่าออฟเซต ไม่ใช่ค่าของข้อมูลตรง a_string ค่าออฟเซตของ a คือ 0 ค่าออฟเซตของ a_string คือ 2 เมื่อแปลมาถึง a_string_length ค่า $ จะเท่ากับ 18 ดังนั้นนิพจน์ค่าคงที่ $-a_string จะเท่ากับ 18-2 หรือ 16 ซึ่งตรงกับความยาว ของ “This is a string” พอดี และ 16 นี้ จะเป็นค่า initval ตรง a_string_length
คำสั่ง db ‘Test’ db ‘Test’ มีความหมายเหมือน คำสั่ง db ‘T’,’e’,’s’,’t’ db ‘T’,’e’,’s’,’t’และมีความหมายเหมือน db ‘T’ db ‘T’ db ‘e’ db ‘e’ db ‘s’ db ‘s’ db ‘t’ db ‘t’ข้อควรระมัดระวัง ‘\0’ เป็น string ของอักขระสองตัว คือ ‘\’ กับ ‘0’ ไม่ เหมือนกับ ภาษา C ‘\0’ เป็น string ของอักขระสองตัว คือ ‘\’ กับ ‘0’ ไม่ เหมือนกับ ภาษา C
Directive PROC ENDP