บทที่2
บทที่2.1
บทที่2.2
บทที่2.3
บทที่2.4
แบบทดสอบแอสเซมบี้ล
กระดานสนทนาห้องสนทนา ประวัติ หน้าหลัก  
บทที่ 2 การเขียนโปรแกรมเบื้องต้น
2.1 การทำงานของ Debug
 
ตัวอย่าง การทำงานของการดีบัก
-
RB X ; เป็นการกำหนดค่าลงไปใน รีจีสเตอร์ BX
BX 0000
: 45BF ; ใส่ค่า 1234 ฐาน 16 ลงไป
- E 100
3756 : 0100 E4.01; ใส่ค่า 01 ลงไป
- E 101
3756 : 0101 85.D8 ; ใส่ค่า D8 ลงไป
แล้วใช้ –R เช็คค่าในรีจีสเตอร์ดู จะกลายเป็นคำสั่ง ADD AX,BX มีรหัสเท่ากับ 01D8
เมื่อต้องการประมวลผล ใช้คำสั่ง T จะได้ผลลัพธ์เก็บไว้ใน Register AX และเราสามารถตรวจสอบคำสั่งที่เครื่องเขียนลงไปได้ โดยการใช้คำสั่ง U
ในการจดจำค่าตัวเลขของคำสั่งนั้นยากต่อการจำ ทำให้ไม่สะดวกในการทำงานฉะนั้นจึงมีวิธีแก้ไข คือเราสามารถพิมพ์คำสั่งลงไปในการดีบักได้ โดยใช้คำสั่งต่อไปนี้
- A100 คือคำสั่ง Assembler ที่ตำแหน่งที่ 100h ซึ่งการเขียนโปรแกรมนั้นจะต้องเขียนตั้งแต่ตำแหน่งนี้ขึ้นไปไม่สามารถเขียนในตำแหน่งที่ต่ำกว่านี้ได้เนื่องจาก เป็นตำแหน่งซึ่งเป็นพื้นที่ของ
 
ตัวอย่าง
1A03:0100 OF ADD AX,BX
Segment : Offset Address Mnemonic
(นีมอนิก คือคำสั่ง)
ตัวอย่างโปรแกรม
c/>debug
***โปรแกรมในการพิมพ์รหัส ASCII ออกมาบนจอภาพ ออกมาเรื่อยๆ
-A 100
Segment : 0100 MOV DL,O ; ใส่ตัวอักษรตัวแรกในรีจีสเตอร์ DL
Segment : 0102 MOV AH,02 ; กำหนดฟังก์ชั่นการแสดงผลออกบนจอภาพ
Segment : 0104 INT 21 ; เรียกการขัดจังหวะจาก DOS
Segment : 0108 JMP 102 ; กระโดดกลับไปแสดงอักษรตัวถัดไปขึ้นมา
Segment : 010A ; กด Enter
-G
-Nascl.com ; บันทึกไว้ในชื่อแฟ้ม ascl .com
-RCX ; กำหนดรีจีสเตอร์ที่ใช้เก็บขนาดแฟ้ม
: 000A ; ขนาดของแฟ้ม
 
การแก้ไขโปรแกรม, com (เมื่อมีการบันทึกเก็บไว้แล้ว โดยใช้การ Debug)
c:/ > Debug ชื่อโปรแกรม ,com (ที่ต้องการแก้ไข)
-L ; เป็นการ load โปรแกรมมาไว้ในหน่วยความจำ
-U ตำแหน่งเริ่มต้น ,ตำแหน่งปลายทาง (ของโปรแกรมที่ต้องการดู หรือ แก้ไข)
-A ตำแหน่งที่ต้องการแก้ไข ; เช่น ลดจำนวนรอบลงจากโปรแกรม ascl.COM แก้ไขตำแหน่ง
-A100 MOV DL,03
หลังจากนั้นก็บันทึกเก็บไว้ใหม่ได้ โดยไม่ต้องทำการพิมพ์ทุกๆบรรทัดของโปรแกรมเดิม