งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

CS Assembly Language Programming

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "CS Assembly Language Programming"— ใบสำเนางานนำเสนอ:

1 CS344-321 Assembly Language Programming
Period 31

2 ตัวอย่าง โปรแกรมย่อย itoa ทำหน้าที่เปลี่ยนเลขจำนวนเต็มมีเครื่องหมาย ให้เป็น string ซึ่งมีความยาวอย่างน้อย 6 และจะมีรูปแบบดังนี้ DS : SI [-]digits และ ax เก็บความยาวของ string ก่อนเรียกใช้ cx เก็บเลขฐาน และ DS : SI ชี้ไปที่เริ่มต้นที่ว่างซึ่งมีความยาวอย่างน้อย 6 ไบต์

3 วิธีการ บวก si ด้วย DS: SI จดจำค่า si ไว้บน stack เพื่อใช้คำนวณความยาว string ในตอนหลัง จดจำเครื่องหมายของค่าใน ax ไว้บน stack ถ้า ค่าใน ax เป็นลบ เปลี่ยนให้เป็นบวก

4 ก. เอาเลขฐานใน cx หาร ค่าใน ax เศษจะอยู่ที่ dx สำหรับฐานสูงสุด 16 เศษจะเก็บใน dl ได้เพียงพอ
เปลี่ยนค่าเศษใน dl ให้เป็นตัวเลข ASCII ด้วยการบวกด้วย ‘0’ เป็นต้น กรณีเป็นเลขฐานสิบหก เศษอาจมีค่าเป็น 10 ถึง 15 ดังนั้น ถ้า เศษมีค่ามากกว่า 9 ให้บวกตัวเลข ASCII ข้างต้นด้วย ‘A’-‘9’-1 ลบ si ด้วย 1 แล้วนำค่า ASCII ดังกล่าวเก็บที่ DS:SI ทดสอบผลลัพธ์ที่ได้จากการหาร ซึ่งเก็บอยู่ใน ax ว่าเป็น 0 หรือไม่ ถ้าไม่ใช่ กลับไปทำซ้ำข้อ ก. มิฉะนั้น เลิกทำซ้ำ ทำข้อ ข.

5 ข. นำเครื่องหมายที่เก็บบน stack มาทดสอบ ถ้าเป็นลบ จะลบค่า si ด้วย 1 แล้ว นำเครื่องหมาย ‘-’ ใส่ตรงตำแหน่ง DS:SI ค. คำนวณความยาวของ string ด้วยการลบค่า si ด้วย ค่า si เดิมที่เก็บใน stack ตัวอย่าง ถ้าค่าใน ax มีค่าเท่ากับ -120 ผลลัพธ์ จะเป็นดังนี้ DS:SI ความยาวที่เก็บใน ax จะเท่ากับ 4 SI เดิม


ดาวน์โหลด ppt CS Assembly Language Programming

งานนำเสนอที่คล้ายกัน


Ads by Google