SlideShare a Scribd company logo
9
Most read
11
Most read
12
Most read
Microprocessor & its Applications
Module 3 Continued……
Dr. Girisha G S
Dept. of CSE
SoE, DSU, Bengaluru
1
• BCD AND ASCII ARITHMETIC Instructions
- DAA, DAS, AAA, AAD, AAM, AAS
Agenda
BCD (Binary-Coded Decimal) code :
- Four-bit code that represents one of the ten decimal digits from 0 to 9.
can not use hex digits A-F
- Let us take an Example:
consider 10 as a decimal number
Its Binary Form will be 1010
Its BCD will be 0001 0000
- BCD can be stored in two way
- Unpacked BCD
- Packed BCD
Packed BCD
- Packed BCD data are stored as two digits per byte
E.g. 17d is stored as 17= 0001 0111
Unpacked BCD
- Unpacked BCD data are stored as one digit per byte
E.g. 17d is stored as 01 07 = 0000 0001 0000 0111
ASCII Code (American Standard Code for Information Interchange)
- ASCII code is a 7 bit code which assigns a binary value to letters, numbers &
other characters from 0 to 127 in decimal (00-7F in hexadecimal)
- In this code number 0 through 9 are represented as 30 through 39
- letters A through Z are represented as 41H through 5AH
- letters a through z are represented as 61H through 7AH
Example: 1234 is stored as 31 32 33 34H
ASCII for 1 is 31H, for 2 is 32H etc.
BCD Arithmetic
- 8086 Microprocessor allows arithmetic manipulation of BCD data
- This is accomplished by instructions that adjust the numbers for BCD
arithmetic
- used to correct the BCD addition/subtraction
- These instructions do not take any operands. The operand is assumed to
be in AL.
• DAA (decimal adjust after addition) instruction follows BCD addition.
• DAS (decimal adjust after subtraction) instruction follows BCD subtraction
DAA: Decimal adjust after addition
Syntax: DAA ; AL←AL converted for BCD addition
- This instruction is used to convert the result of addition of two packed BCD numbers to a valid
BCD number.
- The instruction should be issued after an ADD, ADC instruction. The result has to be only in AL
register.
- On execution of this instruction,
- If the lower nibble in AL register is greater than 9 or AF is set, then 6 will be added to the
AL register. & the AF is set.
- If the upper nibble in AL register is greater than 9 or CF is set, then 60 will be added to the
AL register. & the CF is set.
Flags affected: AF, CF, PF, ZF
Examples:
MOV AL,53H ; AL<-53 BCD = 01010011
MOV CL, 29H; CL<-29 BCD= 00101001
ADD AL, CL ; AL<-7CH = 01111100
DAA ; add 6 to AL because C>9
; AL←7C = 01111100
+6 = 00000110
; AL←82 (BCD)= 10000010
DAS: Decimal adjust after subtraction
- This instruction is used to convert the result of subtraction of two packed BCD numbers
to a valid BCD number.
- The instruction should be issued after an SUB, SBB instruction. The result has to be
only in AL register.
- On execution of this instruction,
- if the lower nibble in AL register is greater than 9 or AF is set, then 6 will be
subtracted from the AL register. & the AF is set.
- If the result of the upper nibble in AL register is greater than 9 or CF is set, then 60
will be subtracted from the AL register. & the CF is set.
Examples:
MOV AL,32H ; Load 32 BCD = 00110010
MOV CL, 17H; Load 17 BCD = 00010111
SUB AL, CL ; AL←32H-17H = 00011010
; AL←1BH
DAS ; subtract 6 from AL because B>9
; AL←1B-6 = 00011010
; - 00000110
; AL←15 (BCD) = 00010101
ASCII Arithmetic
- The ASCII arithmetic instructions function with ASCII-coded numbers.
- These numbers range in value from 30H to 39H for the numbers 0-9.
- There are four instructions used with ASCII arithmetic operations:
• AAA (ASCII adjust after addition)
• AAD (ASCII adjust before division)
• AAM (ASCII adjust after multiplication)
• AAS (ASCII adjust after subtraction)
AAA - ASCII adjust after addition
- The AAA instruction can be used after addition to get the correct result in unpacked BCD
form.
- The AAA instruction works only on AL register. The AAA instruction converts the
resulting content of AL to unpacked BCD form.
- On execution,
- this instruction clears the upper nibble of AL, AH register should be cleared before
adding.
- If lower nibble of AL>9 or AF=1, then it add 6 to the AL register, add 1 to AH register &
set AF & CF = 1.
- In all other cases, the upper nibble of AL is cleared.
- This instruction does not give exact ASCII codes of the SUM, but they can be obtained
by adding 3030H to AX.
E.g. ADD AL,CL ; Before : AL=34H, ASCII 4
; CL=38H, ASCII 8
; After: AL=6CH
AAA ; AL = C + 6
; AL = 12
; AH=01
; AL=02
AAS: ASCII adjust after subtraction
- The AAS instruction can be used after subtraction to get the correct result in
unpacked BCD form.
- The AAS instruction works only on AL register. The AAS instruction converts
the resulting content of AL to unpacked BCD form.
- The adjustment is needed only if the result is negative.
Example: SUB AL, CL ; Before : AL=38H, ASCII 8; CL=32H, ASCII 2
; After: AL=06
AAS ; AL=06 (BCD )
; AX=0006
AAD: ASCII adjust before division
- The instruction AAD can be used to convert the two unpacked BCD digit in AH & AL register
to the equivalent binary number in the register AL. i.e. AAD instruction adjusts the number
in AX before dividing two unpacked decimal numbers.
- This instruction should be issued before the division (DIV) instruction.
- The division instruction will place the quotient in AL register & remainder in the AH
register. The upper nibble of the AH & AL are filled with zero.
- It works as follows: Multiply AH by 10 (0AH) & add it to AL & set AH to 0
Example: AAD ; Before: AH= 02H , AL=07H, CL=07H
; After: AX=001BH
DIV CL
AAM: ASCII adjust after multiplication
- The instruction AAM can be used to convert the result of multiplication of two
valid unpacked BCD number in AX.
- This instruction should be issued after multiplication instruction.
- It works as follows: AL is divided by 10, quotient is stored in AH & remainder in
AL
Example: MUL CL ; Before : AL=04H, CL=06H
; After : AX=0018H (24D)
AAM ; AX=02 04 (unpacked BCD form)

More Related Content

PPTX
Ascii adjust & decimal adjust
PPTX
De-Multiplexing of Address and Data Bus in 8086.pptx
PPTX
Bcd and ascii arithmetic instructions
PPTX
Code Conversion in 8085 Microprocessor
PPTX
Instruction sets of 8086
PPTX
Stack and its usage in assembly language
PPT
Unit 1
PDF
8086 instructions
Ascii adjust & decimal adjust
De-Multiplexing of Address and Data Bus in 8086.pptx
Bcd and ascii arithmetic instructions
Code Conversion in 8085 Microprocessor
Instruction sets of 8086
Stack and its usage in assembly language
Unit 1
8086 instructions

What's hot (20)

PPTX
Register & flags
PPT
ARM Micro-controller
PDF
8086 String Instructions.pdf
PPTX
8251 USART
PPTX
Addressing modes
PPTX
Assembly 8086
PPTX
8086 Interrupts & With DOS and BIOS by vijay
PPTX
Digital Components
PPTX
Introduction to Assembly Language
PPTX
Assembly Language and microprocessor
PPTX
Lec 1 digital electroinics - memory array, write read operations
PPT
8086-instruction-set-ppt
PPTX
Flag Registers (Assembly Language)
PPTX
Interfacing memory with 8086 microprocessor
PDF
Instruction formats-in-8086
PDF
chapter 7 Logic, shift and rotate instructions
ODP
PDF
Assembly language (coal)
PPTX
Set associative mapping
PPT
Assembly language programming_fundamentals 8086
Register & flags
ARM Micro-controller
8086 String Instructions.pdf
8251 USART
Addressing modes
Assembly 8086
8086 Interrupts & With DOS and BIOS by vijay
Digital Components
Introduction to Assembly Language
Assembly Language and microprocessor
Lec 1 digital electroinics - memory array, write read operations
8086-instruction-set-ppt
Flag Registers (Assembly Language)
Interfacing memory with 8086 microprocessor
Instruction formats-in-8086
chapter 7 Logic, shift and rotate instructions
Assembly language (coal)
Set associative mapping
Assembly language programming_fundamentals 8086
Ad

Similar to Ascii arithmetic instructions (20)

PPT
Al2ed chapter11
PPTX
Microprocessor 8086 instruction description
PPTX
Module 2 (1).pptx
PPTX
Mod-2.pptx
PPTX
DAA AND DAS
PPT
Instruction set of 8086
PPTX
Arithmetic instrctions
PPTX
Chap3 8086 artithmetic
PPTX
8086 ins2 math
PPTX
Chapter 3 8086 ins2 math
PPTX
Instruction 4.pptx
PPTX
microcomputer architecture - Arithmetic instruction
PDF
Instructionsetof8086 180224060745(3)
DOCX
Instruction set of 8086
PPTX
Mastering Assembly Language: Programming with 8086
PDF
15CS44 MP &MC Module 3
PDF
15CS44 MP & MC Module 2
PPT
Unit 2 8086 Instruction set.ppt notes good
DOCX
Notes aaa aa
Al2ed chapter11
Microprocessor 8086 instruction description
Module 2 (1).pptx
Mod-2.pptx
DAA AND DAS
Instruction set of 8086
Arithmetic instrctions
Chap3 8086 artithmetic
8086 ins2 math
Chapter 3 8086 ins2 math
Instruction 4.pptx
microcomputer architecture - Arithmetic instruction
Instructionsetof8086 180224060745(3)
Instruction set of 8086
Mastering Assembly Language: Programming with 8086
15CS44 MP &MC Module 3
15CS44 MP & MC Module 2
Unit 2 8086 Instruction set.ppt notes good
Notes aaa aa
Ad

More from Dr. Girish GS (13)

PPTX
Unix- the process
PPTX
unix- Sort, uniq,tr,grep
PPTX
unix- the process states, zombies, running jobs in background
PPTX
Unix - Filters
PPTX
Customizing the unix environment
PPTX
File systems and inodes
PPTX
Basic regular expression, extended regular expression
PPTX
Loop instruction, controlling the flow of progam
PPT
Logic instructions part 1
PPTX
Bcd arithmetic instructions
PPT
Rotate instructions
PPTX
Program control instructions
PPTX
Memory interface
Unix- the process
unix- Sort, uniq,tr,grep
unix- the process states, zombies, running jobs in background
Unix - Filters
Customizing the unix environment
File systems and inodes
Basic regular expression, extended regular expression
Loop instruction, controlling the flow of progam
Logic instructions part 1
Bcd arithmetic instructions
Rotate instructions
Program control instructions
Memory interface

Recently uploaded (20)

PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Digital Logic Computer Design lecture notes
PPT
Mechanical Engineering MATERIALS Selection
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
additive manufacturing of ss316l using mig welding
PPTX
Artificial Intelligence
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
composite construction of structures.pdf
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
Construction Project Organization Group 2.pptx
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Digital Logic Computer Design lecture notes
Mechanical Engineering MATERIALS Selection
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
additive manufacturing of ss316l using mig welding
Artificial Intelligence
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
composite construction of structures.pdf
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Construction Project Organization Group 2.pptx
R24 SURVEYING LAB MANUAL for civil enggi
Embodied AI: Ushering in the Next Era of Intelligent Systems
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks

Ascii arithmetic instructions

  • 1. Microprocessor & its Applications Module 3 Continued…… Dr. Girisha G S Dept. of CSE SoE, DSU, Bengaluru 1
  • 2. • BCD AND ASCII ARITHMETIC Instructions - DAA, DAS, AAA, AAD, AAM, AAS Agenda
  • 3. BCD (Binary-Coded Decimal) code : - Four-bit code that represents one of the ten decimal digits from 0 to 9. can not use hex digits A-F - Let us take an Example: consider 10 as a decimal number Its Binary Form will be 1010 Its BCD will be 0001 0000 - BCD can be stored in two way - Unpacked BCD - Packed BCD Packed BCD - Packed BCD data are stored as two digits per byte E.g. 17d is stored as 17= 0001 0111 Unpacked BCD - Unpacked BCD data are stored as one digit per byte E.g. 17d is stored as 01 07 = 0000 0001 0000 0111
  • 4. ASCII Code (American Standard Code for Information Interchange) - ASCII code is a 7 bit code which assigns a binary value to letters, numbers & other characters from 0 to 127 in decimal (00-7F in hexadecimal) - In this code number 0 through 9 are represented as 30 through 39 - letters A through Z are represented as 41H through 5AH - letters a through z are represented as 61H through 7AH Example: 1234 is stored as 31 32 33 34H ASCII for 1 is 31H, for 2 is 32H etc.
  • 5. BCD Arithmetic - 8086 Microprocessor allows arithmetic manipulation of BCD data - This is accomplished by instructions that adjust the numbers for BCD arithmetic - used to correct the BCD addition/subtraction - These instructions do not take any operands. The operand is assumed to be in AL. • DAA (decimal adjust after addition) instruction follows BCD addition. • DAS (decimal adjust after subtraction) instruction follows BCD subtraction
  • 6. DAA: Decimal adjust after addition Syntax: DAA ; AL←AL converted for BCD addition - This instruction is used to convert the result of addition of two packed BCD numbers to a valid BCD number. - The instruction should be issued after an ADD, ADC instruction. The result has to be only in AL register. - On execution of this instruction, - If the lower nibble in AL register is greater than 9 or AF is set, then 6 will be added to the AL register. & the AF is set. - If the upper nibble in AL register is greater than 9 or CF is set, then 60 will be added to the AL register. & the CF is set. Flags affected: AF, CF, PF, ZF Examples: MOV AL,53H ; AL<-53 BCD = 01010011 MOV CL, 29H; CL<-29 BCD= 00101001 ADD AL, CL ; AL<-7CH = 01111100 DAA ; add 6 to AL because C>9 ; AL←7C = 01111100 +6 = 00000110 ; AL←82 (BCD)= 10000010
  • 7. DAS: Decimal adjust after subtraction - This instruction is used to convert the result of subtraction of two packed BCD numbers to a valid BCD number. - The instruction should be issued after an SUB, SBB instruction. The result has to be only in AL register. - On execution of this instruction, - if the lower nibble in AL register is greater than 9 or AF is set, then 6 will be subtracted from the AL register. & the AF is set. - If the result of the upper nibble in AL register is greater than 9 or CF is set, then 60 will be subtracted from the AL register. & the CF is set. Examples: MOV AL,32H ; Load 32 BCD = 00110010 MOV CL, 17H; Load 17 BCD = 00010111 SUB AL, CL ; AL←32H-17H = 00011010 ; AL←1BH DAS ; subtract 6 from AL because B>9 ; AL←1B-6 = 00011010 ; - 00000110 ; AL←15 (BCD) = 00010101
  • 8. ASCII Arithmetic - The ASCII arithmetic instructions function with ASCII-coded numbers. - These numbers range in value from 30H to 39H for the numbers 0-9. - There are four instructions used with ASCII arithmetic operations: • AAA (ASCII adjust after addition) • AAD (ASCII adjust before division) • AAM (ASCII adjust after multiplication) • AAS (ASCII adjust after subtraction)
  • 9. AAA - ASCII adjust after addition - The AAA instruction can be used after addition to get the correct result in unpacked BCD form. - The AAA instruction works only on AL register. The AAA instruction converts the resulting content of AL to unpacked BCD form. - On execution, - this instruction clears the upper nibble of AL, AH register should be cleared before adding. - If lower nibble of AL>9 or AF=1, then it add 6 to the AL register, add 1 to AH register & set AF & CF = 1. - In all other cases, the upper nibble of AL is cleared. - This instruction does not give exact ASCII codes of the SUM, but they can be obtained by adding 3030H to AX. E.g. ADD AL,CL ; Before : AL=34H, ASCII 4 ; CL=38H, ASCII 8 ; After: AL=6CH AAA ; AL = C + 6 ; AL = 12 ; AH=01 ; AL=02
  • 10. AAS: ASCII adjust after subtraction - The AAS instruction can be used after subtraction to get the correct result in unpacked BCD form. - The AAS instruction works only on AL register. The AAS instruction converts the resulting content of AL to unpacked BCD form. - The adjustment is needed only if the result is negative. Example: SUB AL, CL ; Before : AL=38H, ASCII 8; CL=32H, ASCII 2 ; After: AL=06 AAS ; AL=06 (BCD ) ; AX=0006
  • 11. AAD: ASCII adjust before division - The instruction AAD can be used to convert the two unpacked BCD digit in AH & AL register to the equivalent binary number in the register AL. i.e. AAD instruction adjusts the number in AX before dividing two unpacked decimal numbers. - This instruction should be issued before the division (DIV) instruction. - The division instruction will place the quotient in AL register & remainder in the AH register. The upper nibble of the AH & AL are filled with zero. - It works as follows: Multiply AH by 10 (0AH) & add it to AL & set AH to 0 Example: AAD ; Before: AH= 02H , AL=07H, CL=07H ; After: AX=001BH DIV CL
  • 12. AAM: ASCII adjust after multiplication - The instruction AAM can be used to convert the result of multiplication of two valid unpacked BCD number in AX. - This instruction should be issued after multiplication instruction. - It works as follows: AL is divided by 10, quotient is stored in AH & remainder in AL Example: MUL CL ; Before : AL=04H, CL=06H ; After : AX=0018H (24D) AAM ; AX=02 04 (unpacked BCD form)

Editor's Notes

  • #4: Decimal numbers can be represented in one of the two forms: BCD and ASCII In BCD, each of the digit of the decimal number is represented by its binary form in 4 bits. In this code each decimal digit is represented by a 4-bit binary number. BCD is a way to express each of the decimal digits with a binary code. But in BCD code only first ten of these are used (0000 to 1001).The remaining six code combinations i.e. 1010 to 1111 are invalid in BCD. BCD information is stored in either packed or unpacked form(lower 4 bits represent number others are 0 In unpacked BCD a byte is used to contain a number. i.e contains only one digit per byte In packed BCD a byte has two BCD numbers i.e packs two decimal digits in a byte
  • #5: This is a standard set of characters understood by all computers, Each character is assigned a unique 7-bit code. they are mainly used for representing characters, such as characters "a" to "z" and number "0" to "9"
  • #6: To perform mathematical operations on BCD and ASCII. Operate with BCD data, used to correct the BCD addition/subtraction
  • #7: Used after add or adc to adjust the result back in to packed bcd format. Daa instruction adjust the result to bcd DAA performs the following operations. The daa instruction works as follows:
  • #8: Used after sub or sbb to adjust the result back in to packed bcd format.
  • #13: Converts the product available in AL in to unpacked BCD