Upload
yensayon
View
94
Download
3
Tags:
Embed Size (px)
DESCRIPTION
programming COA
Citation preview
COMPUTER ARCHITECTURE
BCD Arithmetic
&ASCII
Arithmetic៣ក្�មទី�៣
គោ�លបំ�ណង
ការប្រើ���ស់� DAA Instruction
ការប្រើ���ស់� DAS Instruction
ការប្រើ���ស់� AAA Instruction
DAA Instruction(Decimal Adjust after Addition)
DAA Instruction គឺជា Instructionបំ�សម្�បំ�គោ���ការគឺណនាបំ�មាណវិ���បំ�កBCD
ពី�រ គោ��ម្��ទទ�លបានន�វិលទ!ផលBCD Number និនិនិនិនិនិនិនិនិនិនិនិនិនិបា#�ក�ន$ងត្�ម្ត្�វិ។
─ប្រើ��តម�Low Order ឬLow Nibble(LN)>9 ឬ Auxilary Carry Flag (AF)=1ប្រើ��នInstruction+6(06)ប្រើ�ប្រើ��Low Orderប្រើ��។─ប្រើ��តម�High Order ឬUpper Nibble(UN)>9 ឬ Carry Flag (CF)=1ប្រើ��នInstruction+6(60)ប្រើ�ប្រើ��High Orderប្រើ��។
Instruction works as follows:
��ហាត���រ �
រក្�ទី�ផ�នៃនCode ខាងក្�ម៖
1.MOV AL,39H2.MOV CL,12H3.ADD AL,CL4.DAA
1.AL=39H=0011 1001B2.CL=12H=0001 0010B3.AL=4BH=0100 1011B4.ADD 0110 ព្�LN=1011>9ប្រើ#�ង�ន$AL=0100 1011+0000 0110 =0101 0001B =51H
ស់%#
DAS Instruction(Decimal Adjust after Subttacion)
DAS Instruction គឺជា Instructionបំ�សម្�បំ�គោ���ការគឺណនាបំ�មាណវិ����កBCDពី�រគោ��ម្��ទទ�លបានន�វិលទ!ផលBCD Number និនិនិនិនិនិនិនិនិនិនិនិនិនិបា#�ក�ន$ងត្�ម្ត្�វិ។
─ប្រើ��តម�Low Order ឬLow Nibble(LN)>9 ឬ Auxilary Carry Flag (AF)=1ប្រើ��នInstruction-6(06)ប្រើ�ប្រើ��Low Orderប្រើ��។─ប្រើ��តម�High Order ឬUpper Nibble(UN)>9 ឬ Carry Flag (CF)=1ប្រើ��នInstruction-6(60)ប្រើ�ប្រើ��High Orderប្រើ��។
Instruction works as follows:
��ហាត���រ �
រក្�ទី�ផ�នៃនCode ខាងប្រើកាម៖
1.MOV AL,72H2.MOV CL,18H3.SUB AL,CL4.DAS
1.AL=72H=0111 0010B2.CL=18H=0001 1000B3.AL=1BH=0101 1010B4.Sub 0110 ព្�LN=1010>9ប្រើ#�ង�ន$AL=0101 1010-0000 0110 =0100 0100B =44H
ស់%#
ASCII Number មានល�ដាបំ�ត្ម្�ពី�30Hគោ(39Hគឺចាបំ�ពី�គោលខ0 -> 9។គោ+ក,-ងASCII មានInstruction��ចជា/AAA Instruction, AAS Instruction, AAD Instruction……..។
ASCII ARITHMETIC
AAA Instruction �&ជាពាក្)�ញ្ជា+ដែ-�ប្រើ�����. ��ព្���%ណវិ1ធី���ក្ASCIIព្�រ។វា�ន�ម�ង�ទី�ផ�រ�ស់�ADD ប្រើ�ជាUnpacked BCD ប្រើ4�#-�ប្រើណ� រការរ�ស់�វា�&
អាស់�#ប្រើ��តម�Low Order ឬLow Nibble(LN) នៃន AL។
AAA INSTRUCTION(ASCII ADJUST AFTER ADDITION)
●ប្រើ��តម�Low Order ឬLow Nibble(LN)>9 ឬ Auxilary Carry Flag (AF)=1៖─ ប្រើ#�ងត�វិដែត#ក្AL+06 ប្រើ4�#�6� តម� High Order ឬUpper Nibble(UN)រ�ស់�AL─��. ��មក្#ក្AH+01─ចំ�ប្រើពា�AF=1,CF=1។
Instruction works as follows:
●ប្រើ��តម�Low Order ឬLow Nibble(LN)ខុ6ស់ព្�ប្រើន��&៖AF=0,CF=0។● ប្រើ��ចំង��ម�ងព្�Unpacked BCD
ប្រើ�ជា ACSII វិ1ញ�&ត�វិ#ក្�ទី�ផ�ប្រើ�OR Instruction ន:ង30H(OR AX,3030H ឬ OR AL,30H)។
រក្�ទី�ផ�នៃនCode ខាងក្�ម៖1.MOV AX,3435H(ASCII)2.MOV DL,37H(ASCII)3.ADD AL,DL4.AAA5.OR AX,3030H
��ហាត���រ �
ស់ម�#
1.AX=3435H <=> AH=34H,AL=35H2.DL=37H3.AL=35H+37H=6CH4. ប្រើ;# LN= C>9 ─AL= AL+06H= 6CH+06H=72H─�6�ផ�ក្UNរ�ស់�AL =>AL=02H (Unpacked BCD Values) ─AH=34H=04H(ASCII->BCD) <=>AH=AH+01H=04H+01H=05H-�ចំប្រើន�AX=0502H(BCD Values)។
5.AX=0502H OR 3030H =0000 0101 0000 0010
OR 0011 0000 0011 0000 =0011 0101 0011 0010
=3532H-�ចំប្រើន�AX=3532H(ASCII Values)។