In this experiment we will implement the Addition and Subtraction Functions Usin
ID: 3931410 • Letter: I
Question
In this experiment we will implement the Addition and Subtraction Functions Using PIC 161 84 A microcontroller. Part 1 is the addition anti part 2 is the subtraction Addition and subtraction functions The addition function is summarized as follow: We use the method of masking to separate the two numbers, since the first number is in the LSB of PORTB and the second number is in the MSB, we separate the first number using the instruction ANDL W 0X0F, and the second number using the instruction ANDL W 0XF0. After that before we add the two numbers, the first number is ready for addition but the second number needs to be swapped, so we use the instruction SWAPF F, d to swap it (swapping means F(0:3)- F(4:7), F(4:7) = F(0:3)). After that we add the two numbers using the instruction ADDWF F, d and then we display the result on PORTA. The subtraction function is the same as the addition function except you will subtract the two numbers instead of adding them. To avoid negative answer the first number must be greater than the second (I need help with part 2 writing the assembly program) Part 2: Subtraction Function Write an assembly program to achieve the subtraction of two numbers entered to port B and display the result on port A. Simulate the program using the circuit shown in figure via Proteus software. Verify it operates properly when simulatedExplanation / Answer
.model small
.data
p db 0AH
q db 04H
.code
mov ax, @data ; Initialize data section
mov ds, ax
mov al, p ; Load number1 in al
mov bl, q ; Load number2 in bl
sub al, bl ; subtract numbers and result in al
mov ch, 02h ; Count of digits to be displayed
mov cl, 04h ; Count to roll by 4 bits
mov bh, al ; Result in reg bh
ltwo: rol bh, cl ; roll bl so that msb comes to lsb
mov dl, bh ; load dl with data to be displayed
and dl, 0fH ; get only lsb
cmp dl, 09 ; check if digit is 0-9 or letter A-F
jbe lfour
add dl, 07 ; if letter add 37H else only add 30H
lfour: add dl, 30H
mov ah, 02 ; Function 2 under INT 21H (Display character)
int 21H
dec ch ; Decrement Count
jnz ltwo
mov ah, 4cH ; Terminate Program
int 21H
end
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.