I am trying to make program in ASSEMLBY language, where you put in 4 points A(a1, a2); B(b1, b2); C(c1, c2); D(d1, d2). I have tried to make a two vectors and then compare them and i dont know where I am doing mistake.Here is my whole code:
.h8300s .equ syscall,0x0001FF00 ; simulated IO area .equ PUTS,0x0114 ; code PUTS .equ GETS,0x0113 ; code GETS; ------ datovy segment ---------------------------- .datatxt1: .asciz "Put coordinates of your points(point enter point):\n "txt2: .asciz "Lines have points in common.\n" txt3: .asciz "Lines do not have points in common.\n"txt4: .asciz "Lines have peak in common.\n"a1: .space 256 ; coordinates of the point to be loadeda2: .space 256 ; coordinates of the point to be loadedb1: .space 256 ; coordinates of the point to be loadedb2: .space 256 ; coordinates of the point to be loadedc1: .space 256 ; coordinates of the point to be loadedc2: .space 256 ; coordinates of the point to be loadedd1: .space 256 ; coordinates of the point to be loadedd2: .space 256 ; coordinates of the point to be loadedv1: .space 256 ; coordinates of vectorv2: .space 256 ; coordinates of vectorc: .space 256 ; minus c to compare with the result of the general equation ; parameter blocks must be dword-aligned (2) .align 2 par0: .long txt1 par1: .long a1par2: .long a2 par3: .long b1par4: .long b2par5: .long c1par6: .long c2par7: .long v1par8: .long v2par9: .long c par10: .long txt2par11: .long txt3par12: .long d1par13: .long d2par14: .long txt4; stack must be word-aligned (1) .align 1 ; address alignment.space 256 ; stackstck: ; end of stack + 1; ------- subroutine loading point coordinates --------------------loading to the addresses listed on ER2 and ER3nacti: mov.w #PUTS,R0 ;vypis mov.l #par0, ER1 jsr @syscall mov.w #GETS, R0 ;prijimani znaku mov.l ER2, ER1 jsr @syscall ; zavola simulaci IO xor.l ER1, ER1 mov.w #GETS, R0 mov.l ER3, ER1 jsr @syscall xor.l ER1, ER1 rts; ------- subroutine to convert ASCII to DEC ---------; ASCII is in ER1 and the result is in ER3prevod: xor.l ER2, ER2 xor.l ER3, ER3 xor.l ER0, ER0 xor.l ER5, ER5 xor.l ER6, ER6 mov.l #10, ER4preved: mov.b @ER1,R0L ;read character (from the beginning) cmp.b #0x0A,R0L ;new line? beq zpet ;yes -> end mulxu.w R3, ER4 inc.l #1, ER1 sub.w #0x30,R0 ;gain the value of the digit add.l ER0, ER3 jmp @preved zpet: rts;------- end of subroutine for ASCII conversion not DEC --------- .text .global _start_start: mov.l #stck,ER7 ;container address on ER7 mov.l #par1,ER2 mov.l #par2,ER3 jsr @nacti mov.l #par3,ER2 mov.l #par4,ER3 jsr @nacti mov.l #par5,ER2 mov.l #par6,ER3 jsr @nacti mov.l #par12,ER2 mov.l #par13,ER3 jsr @nacti mov.l @par1, ER1 jsr @prevod mov.l ER3, @a1 mov.l @par2, ER1 jsr @prevod mov.l ER3, @a2 mov.l @par3, ER1 jsr @prevod mov.l ER3, @b1 mov.l @par4, ER1 jsr @prevod mov.l ER3, @b2 mov.l @par5, ER1 jsr @prevod mov.l ER3, @c1 mov.l @par6, ER1 jsr @prevod mov.l ER3, @c2 mov.l @par11, ER1 jsr @prevod mov.l ER3, @d1 mov.l @par12, ER1 jsr @prevod mov.l ER3, @d2 beq ano1ano1: xor.l ER1, ER1 xor.l ER2, ER2 xor.l ER3, ER3 xor.l ER4, ER4 xor.l ER5, ER5 mov.l @par1, ER1 mov.l @ER1, ER2 mov.l @par3, ER3 mov.l @ER3, ER4 sub.l ER4, ER2 mov.l ER2, ER5 mov.l ER5, @v1 cmp.l ER4, ER2 beq ano xor.l ER1, ER1 xor.l ER2, ER2 xor.l ER3, ER3 xor.l ER4, ER4 mov.l @par2, ER1 mov.l @ER1, ER2 mov.l @par4, ER3 mov.l @ER3, ER4 sub.l ER4, ER2 mov.l ER2, ER6 mov.l @par1, ER1 mov.l @ER1, ER2 mov.l @par3, ER3 mov.l @ER3, ER4 sub.l ER4, ER2 mov.l ER2, ER5 mov.l ER5, @v1 cmp.l ER4, ER2 beq ano xor.l ER1, ER1 xor.l ER2, ER2 xor.l ER3, ER3 xor.l ER4, ER4 mov.l @par5, ER1 mov.l @ER1, ER2 mov.l @par12, ER3 mov.l @ER3, ER4 sub.l ER4, ER2 mov.l ER2, ER6 mov.l @par6, ER1 mov.l @ER1, ER2 mov.l @par13, ER3 mov.l @ER3, ER4 sub.l ER4, ER2 mov.l ER2, ER6 mov.l ER6, @v2 cmp.l ER5, ER6 mov.w #PUTS,R0 mov.l #par10, ER1 jsr @syscall jmp @konecvrchol: mov.w #PUTS,R0 mov.l #par14, ER1 jsr @syscall jmp @konecano: mov.w #PUTS,R0 mov.l #par11, ER1 jsr @syscall jmp @koneckonec: jmp @_start .end
This is my code for it, as you can see I am trying to count two vectors and then compare them, but I ma not sure if I am doing it right, I would much appreaciate your help. Thanks.