Here we will see how to add even parity to 7-bit ASCII string using 8085.
Write a program to add even parity to a string of 7 bit ASCII characters. The length of the string is in memory location 8040 H and the string itself begins at memory location 8041 H. Place even parity in the most significant bit of each character.
8085 has parity flat. that flag will be used to check and assign parity with each ASCII character. At first we will clear the most significant bit by masking the number with 7FH. Then use OR instruction, as this effects on parity flag. If the parity is even, then skip, otherwise set most significant bit as 1. This process will repeat until the string is not exhausted.
|8000||21, 40. 80||START:||LXI H, 8040 H||H 8040 H Counter pointer|
|8003||4E|| ||MOV C, M||C (HL) counter|
|8004||23||LOOP:||INX H||HL HL + 1|
|8005||7E|| ||MOV A, M||A (HL); get a word|
|8006||E6, 7F|| ||ANI 7F H||Mask most significant bit=0 since it will be used for parity bit|
|8008||B7|| ||ORA A||To check for parity (ORA affects S, Z, P)|
|8009||EA, 0E, 80|| ||JPE DOWN||Is parity even, if yes go to down|
|800C ||F6, 80|| ||ORI 80 H||Add 1 as most significant bit|
|800E ||77||DOWN:||MOV M, A||Store result|
|800F ||0D|| ||DCR C||Counter = Counter – 1|
|8010||C2, 04, 80|| ||JNZ LOOP||Is C = 0? If no then go to loop|