1 / 8

CS344-321 Assembly Language Programming

CS344-321 Assembly Language Programming. Period 20. Data Transfer Instructions mov destination,source ขนาดของข้อมูลต้องตรงกัน คือ 8 บิตกับ 8 บิต และ 16 บิตกับ 16 บิต เช่น mov ax,bx mov al,temp เมื่อ temp db ? เป็นต้น.

taya
Download Presentation

CS344-321 Assembly Language Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS344-321 Assembly Language Programming Period 20

  2. Data Transfer Instructions mov destination,source ขนาดของข้อมูลต้องตรงกัน คือ 8 บิตกับ 8 บิต และ 16 บิตกับ 16 บิต เช่น mov ax,bx mov al,temp เมื่อ temp db ? เป็นต้น

  3. กรณีของ memory ถ้ามีความจำเป็นต้องใช้ข้อมูลที่มีขนาดไม่ตรงกับที่ define เช่น mov al,x เมื่อ x dw ? ไม่สามารถทำได้ แต่ถ้าต้องการข้อมูลตรงตำแหน่ง x ขนาดหนึ่งไบต์จริงๆ สามารถทำได้ สองลักษณะ คือ mov al,byte ptr x เมื่อ x dw ? หรือ mov al,xb เมื่อ xb label byte x dw ?

  4. อีกตัวอย่างหนึ่ง เช่น mov al,byte ptr y mov ah,byte ptr y+1 เมื่อ y dw ?

  5. push pop การ push เพื่อเก็บค่าชั่วคราว และ การ pop เพื่อต้องการค่าเดิม ให้ทำสลับกัน ดังเช่น push ax push bx push cx … pop cx pop bx pop ax

  6. xchg xlat in out lea lds les

  7. lahf sahf pushf popf flags มีบิตต่างๆ ดังนี้ 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 OF DF IF TF SF ZF AF PF CF ต้องการเปลี่ยนแปลงที่บิต 00-07 สามารถใช้คำสั่ง lahf กับ sahf ได้ ถ้าต้องการเปลี่ยนแปลงที่ บิตใดๆ สามารถใช้คำสั่ง pushf กับ popf ดังเช่น

  8. ต้องการเปลี่ยน OF ให้เป็น 0 โดยที่บิตอื่นๆ ไม่เปลี่ยนแปลง ทำดังนี้ pushf pop ax and ax,1111011111111111b หรือ and ax,0F7FFH push ax popf หมายเหตุ ถ้าต้องการเปลี่ยนที่บิตใดให้เป็น 0 ทำได้โดยการ and ด้วย 0 ที่ตำแหน่งนั้น ส่วนที่บิตอื่นเป็น 1 ถ้าต้องการเปลี่ยนที่บิตใดให้เป็น 1 ทำได้โดยการ or ด้วย 1 ที่ตำแหน่งนั้น ส่วนที่บิตอื่นเป็น 0

More Related