#include #include "adds_21161_ezkit.h" #include .extern _vector_X; .extern _vector_Y; .extern _matrix_A; .extern _matrix_A_PM; .extern _n; .segment /pm seg_pmco; //########################################################## //########################################################## _skoki_opoznione: .global _skoki_opoznione; leaf_entry; //wejscie do procedury R2=2; R4=2; R3=R2-R4; IF EQ jump etykieta (db) ; nop; nop; nop; nop; nop; etykieta: nop; nop; //############################################################# leaf_exit; _skoki_opoznione.end: //########################################################## //########################################################## _tryby_pracy_ALU: .global _tryby_pracy_ALU; leaf_entry; //wejscie do procedury //nasycanie się wyniku bit set MODE1 ALUSAT; //nasycanie się wyniku R2=0x7fffffff; // R4=1; R5=R2+R4; //wynik w R5 jest nasycony, flaga AVx jest ustawiona bit clr MODE1 ALUSAT; //bez nasycania się wyniku nop; R5=R2+R4; //przepełnienie w R5, flaga AVx jest ustawiona //zaokraglanie wyniku R0=0x7fffffff; R1=0x5500000; MRF=R0*R1(SSF); //Signed * Signed (Fractionals) //wynik (w rejestrze MRF) pełny = 32+32bity MRF=R0*R1(SSFR); //Signed * Signed (Fractionals)+Rounding //wynik (w rejestrze MRF) zaokrąglony //############################################################# leaf_exit; _tryby_pracy_ALU.end: .endseg;