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

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

204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล บทที่ 11 โปรแกรมย่อย.

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


งานนำเสนอเรื่อง: "204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล บทที่ 11 โปรแกรมย่อย."— ใบสำเนางานนำเสนอ:

1 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล บทที่ 11 โปรแกรมย่อย ขั้นต้น • การประกาศ procname PROC NEAR … ;program RET procname ENDP • การเรียกใช้ CALL procname ;print Hex digit ;input al<-digit ;affect : dl,ah printhexdigit proc near mov ah,2 mov dl,al add dl, ’ 0 ’ cmp al,10 jb printit add dl, ’ A ’ - ’ 0 ’ -10 printit: int 21h ret printhexdigit endp

2 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล โปรแกรมย่อยขั้นต้น • ผลกระทบข้างเคียง – การทำงานของโปรแกรมย่อยอาจมี ผลกระทบข้างเคียงกับ รีจิสเตอร์อื่น ๆ ได้ – เราควรป้องกันการเกิดผลกระทบนี้ – เก็บรักษาค่าเดิมของรีจิสเตอร์ -> ใช้ stack • คำสั่งเกี่ยวกับ stack –PUSH reg16 : ใส่ค่าลงใน stack –POP reg16 : อ่านค่าขึ้นมาจาก stack ; print a 2-digit hex number ; the digits is stored in bh,bl... mov al,bh call printhexdigit mov al,bl call printhexdigit...

3 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล การทำงานของคำสั่ง PUSH และ POP • โดยปกติรีจิสเตอร์ SS:SP จะเก็บ ตำแหน่งบนสุดของแสต็ก. เมื่อ เราสั่ง PUSH หรือ POP กับ แสต็กหน่วยประมวลผลจะปรับค่า ของรีจิสเตอร์ SP ให้มีค่าชี้ ตำแหน่งบนสุดของแสต็กอีก ครั้ง. SS : SP AX = 1234 PUSH AX 1234 SS : SP DX = 034A PUSH DX 034A 1234 SS : SP POP BX 034A 1234 SS : SP BX = 034A

4 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล โปรแกรมย่อยขั้นต้น ;print Hex digit ;input al<-digit printhexdigit proc near push ax push dx mov ah,2 mov dl,al add dl, ’ 0 ’ cmp al,10 jb printit add dl, ’ A ’ - ’ 0 ’ -10 printit: int 21h pop dx pop ax ret printhexdigit endp

5 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล โปรแกรมย่อยขั้นต้น • การผ่านค่า parameter ให้กับ โปรแกรมย่อยจากตัวอย่างใช้การ ผ่านค่าผ่านทางรีจิสเตอร์. ใน บทถัด ๆ ไปเราจะได้เรียนรู้การ ผ่านค่าผ่านทาง stack ซึ่งเป็น แบบนิยมใช้ในภาษาระดับสูง. • การเปลี่ยนแปลงของ stack เมื่อมีการเรียกโปรแกรมย่อย call printhexdigit ? IP ? กระโดดไปทำงานที่โปรแกรมย่อย DX AX IP ? push ax push dx DX AX IP ? pop dx pop ax ret กระโดดกลับไป โปรแกรมหลัก IP ? ปรับค่าโดยอัตโนมัติ หลักการสั่ง CALL และ RET


ดาวน์โหลด ppt 204221 องค์ประกอบคอมพิวเตอร์และภาษาแอสเซมบลี้ ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเกษตรศาสตร์ สัณฑิติ พัชรรุ่งเรือง จิตร์ทัศน์ ฝักเจริญผล บทที่ 11 โปรแกรมย่อย.

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


Ads by Google