1 / 13

การคำนวณกับ ASCII และ BCD

การคำนวณกับ ASCII และ BCD. ประมวลผล เลขฐานสอง. แป้นพิมพ์ รับข้อมูล. เปลี่ยนข้อมูล เป็นเลขฐานสอง. เปลี่ยนเป็น รหัส BCD. เปลี่ยนเป็น ASCII. แสดงผลทาง จอภาพ. เลข Packed BCD และ Unpacked BCD. EX: จงเขียนเลขฐานสิบ 59 ในรูปของเลข packed BCD และ unpack BCD วิธีทำ 5 = 0101

ayla
Télécharger la présentation

การคำนวณกับ ASCII และ BCD

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. การคำนวณกับ ASCII และ BCD

  2. ประมวลผล เลขฐานสอง แป้นพิมพ์ รับข้อมูล เปลี่ยนข้อมูล เป็นเลขฐานสอง เปลี่ยนเป็น รหัส BCD เปลี่ยนเป็น ASCII แสดงผลทาง จอภาพ

  3. เลข Packed BCD และ Unpacked BCD

  4. EX: จงเขียนเลขฐานสิบ 59 ในรูปของเลข packed BCD และ unpack BCD วิธีทำ 5 = 0101 9 = 1001 packed BCD = 01011001 unpack BCD = 00000101 00001001

  5. BCD Addition • ถ้าหาก AL เก็บ 6 และ BL เก็บ 7 AL 00000110 BL +00000111 AL 00001101 จะเห็นว่าถ้าผลลัพธ์มีค่ามากกว่า 10 คำตอบที่ได้จะไม่เป็น BCD

  6. คำสั่ง AAA (ASCII adjust for instruction) เป็นคำสั่งปรับค่าหลังการบวกให้ผลลัพธ์อยู่ในรูปรหัส BCD ตัวอย่าง ถ้า AL เก็บ 36H (ASCII 6) และ BL เก็บ 37H (ASCII 7) AH 00000000 AL 00110110 BL + 00110111 AH 00000000 AL 01101101 ;สี่บิตล่าง not BCD + 1 + 00000110 ;บวก 6 ให้ AL ;บวก 1 ให้ AH AH 00000001 AL 01110011 ;เคลียร์สี่บิตบน AH 00000001 AL 00000011

  7. ตัวอย่าง ถ้า AL เก็บ 39H (ASCII 9) และ BL เก็บ 37H (ASCII 7) AH 00000000 AL 00111001 BL + 00110111 AH 00000000 AL 01110000 ;สี่บิตล่าง not BCD + 1 + 00000110 ;บวก 6 ให้ AL ;บวก 1 ให้ AH AH 00000001 AL 01110110 ;เคลียร์สี่บิตบน AH 00000001 AL 00000110

  8. ตัวอย่าง จงเขียนชุดคำสั่งบวกเลข unpacked BCD ที่เก็บอยู่ใน BL และ AL วิธีทำ เริ่มต้นเคลียร์ค่าใน AH แล้วจึงบวกเลข MOV AH , 0 ADD AL , BL ;บวกเลข Binary AAA ; BCD adjust, AX contains sum

  9. ตัวอย่าง จงเขียนชุดคำสั่งบวกเลข BCD สองหลักที่เก็บอยู่ในไบต์ B+1 : B กับไบต์ที่เก็บอยู่ใน A+1 : A วิธีทำ บวกหลักต่ำก่อนหลักสูง MOV AH , 0 MOV AL , A ADD AL , B AAA MOV A , AL MOV AL , AH ADD AL , A+1 ADD AL , B+1 MOV A+1 , AL

  10. คำสั่ง AAS (ASCII adjust for subtraction) เป็นคำสั่งปรับค่าหลังการลบ ตัวอย่าง ถ้าต้องการลบ 7 ออกจาก 26 โดย 7 เก็บใน BL ,2 ใน AH และ 6 ใน AL AH 00000010 AL 00000110 BL - 00000111 AH 00000010 AL 11111111 ;สี่บิตล่าง not BCD - 1 - 00000110 ;ลบ 6 กับ AL ;ลบ 1 กับ AH AH 00000001 AL 11111001 ;เคลียร์สี่บิตบน AH 00000001 AL 00001001 ;AH:AL เก็บ 19

  11. ตัวอย่าง จงเขียนชุดคำสั่งลบเลข BCD สองหลักที่เก็บอยู่ในไบต์ B+1 : B ออกจากไบต์ที่เก็บอยู่ใน A+1 : A วิธีทำ ลบหลักต่ำก่อนหลักสูง MOV AH , A+1 ;โหลดไบต์สูงของ A MOV AL , A ;โหลดไบต์ต่ำของ A SUB AL , B ;นำไบต์ต่ำของ B ไปลบ AAS ;ปรับค่าหลังจากการลบ SUB AH , B+1 ;ลบไบต์สูง MOV A+1 , AH ;เก็บผลลัพธ์ไบต์สูง MOV A , AL ;เก็บผลลัพธ์ไบต์ต่ำ

  12. คำสั่ง AAM เปลี่ยนค่าหลังการคูณที่อยู่ใน AL ให้เป็น unpacked BCD ตัวอย่าง ถ้าต้องการคูณเลข 5 กับ 9 โดย AL เก็บรหัส ASCII ของ 5 และ CL เก็บรหัส ASCII ของ 9

  13. คำสั่ง การทำงาน AX CL AND CL , 0FH;เปลี่ยนค่า CL เป็น 09 0035 09 AND AL , 0FH ;เปลี่ยนค่า AL เป็น 05 0005 09 MUL CL ;คูณ AL กับ CL 002D 09 AAM ;เปลี่ยนค่าใน AX เป็น BCD 0405 OR AX , 3030H ;เปลี่ยนค่าใน AX เป็น ASCII 3435 การทำงานของคำสั่งจะหารค่าใน AL ด้วย 10 และเก็บผลลัพธ์ใน AH เศษเก็บใน AL

More Related