Quantcast
Channel: Active questions tagged kernel - Stack Overflow
Viewing all articles
Browse latest Browse all 6334

If two lines have point in common, write it out. (Assemlby language)

$
0
0

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.


Viewing all articles
Browse latest Browse all 6334

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>