Friday 15 December 2017

VVM CREATE A PROGRAM FOR DIVISION WITH APPROXIMATE PART

Q)
Write a program in VVM Assembler which will divide two numbers, i.e. divide number A by number B. If B>A or B=0 or B is negative number, then the program should prompt for another input which is less than A (B<A). If the result involves decimal output then the program should take care of the decimal part to produce the approximate correct results.

in //input for a sto 90 //store a at 90 sto 94 //store a also at 94 in //input for b sto 91 //store b at 91 lda 91 //load b (91) brz 08 //if b = 0 read go for new input brp 09 //if b is negative go for new input jmp 03 //jump for b new input lda 90 //load a brz 70 //if a=0 then show directly zero lda 90 //load value 90 sub 91 //a-b brp 15 //if b>a go for new input jmp 03 //jump for b<a lda 90 //lda 90 brz 70 //branch if zero jump 70 sub 91 //subtract 90-91 sto 90 //store subtracted value at 90 brp 60 //branch if postive or zero jump 60 lda 94 //code fo approx : load 94 sub 95 //94-95 sto 95 //store subtracted value at 95 lda 96 //load 96 add 97 //add 96+97 sto 96 //store added value to 96 lda 95 //load 95 sub 93 //subtract 95-93 sto 95 //store at 95 brz 31 //branch if 95 is zero then jump 31 jmp 23 //jump 23 jmp 32 //:31 line no:jump 32 *32 //32 line no start lda 96 //load 96 brz 37 //branch if zero jump 37 line sub 91 //sub 96-91 sto 96 //store subtracted value at 96 brp 42 //branch if postive or zero then jump 42 line lda 98 //load 98 sub 99 //sub 98-99 brp 80 //branch if positive or zero jump 80 line br 70 //jump 70 *42 //42 line no starts lda 98 //load 98 add 93 //add 98+93 sto 98 //store at 98 jmp 32 //jump 32 *60 //60 line no starts lda 92 //lda 92 add 93 //add 93 sto 92 //sto added value 92 jmp 73 //jmp 73 *70 //70 line no starts lda 92 //load 92 out //output 92 hlt //exit or terminated program *73 //line 73 starts lda 91 //load 91 add 95 //add 91+95 sto 95 //store added value at 95 jmp 15 //jump 15 *80 //line no 80 starts lda 92 //load 92 add 93 //add 92+93 out //output added value hlt //exit program *90 //90 line no starts dat 000 //hardcoded value at 90(0) dat 000 //hardcoded value at 90(0) dat 000 //hardcoded value at 90(0) dat 001 //hardcoded value at 90(1) dat 000 //hardcoded value at 90(0) dat 000 //hardcoded value at 90(0) dat 000 //hardcoded value at 90(0) dat 010 //hardcoded value at 90(10) dat 000 //hardcoded value at 90(0) dat 005 //hardcoded value at 90(5)

No comments:

Post a Comment