需要帮助在ARM中将IEEE转换为TNS

时间:2016-10-07 08:02:02

标签: assembly arm ieee-754

所以我目前正在为我的计算机组织类创建一个代码,我们需要对一个中间件进行编程,该中间件采用IEEE值和它的等效TNS值,并将它们转换为各自的对立面(例如TNS转换为IEEE; IEEE转换到TNS。)之后我们要比较我们对原件的答案,以检查它们是否确实相等。这是我的代码:

    AREA        IEEEAndTNS, CODE, READONLY;
          ENTRY

                 ADR r1, TNS                ;
                 ADR r2, IEEE           ;
                 BL convertToIEEE       ;
                 BL convertToTNS        ;
                 CMP r2, r5             ;
                 BLEQ   compareIEEE     ;
    Done         B Done                 ;

    convertToIEEE   AND r9, r1, #&FF000000  ;
                    LSR r10, r1, #1         ;
                    AND r10, r10, #&FF      ;
                    LSL r10, r10, #1        ;
                    SUB r10, r10, #256      ;
                    ADD r10, r10, #127      ;
                    LSR r10, r10, #23       ;
                    AND r11, r1, #&CF0000   ;
                    LSL r11, r11, #8        ;
                    ORR r5, r9,r11          ;
                    ORR r5, r5, r10         ;
                    BX  lr                  ;

    convertToTNS    AND r9, r2, #&00        ;
                    AND r10, r2, #&FF000000 ;
                    SUB r10, r10, #127      ;
                    ADD r10, r10, #256      ;
                    LSL r10, r10, #22       ;
                    AND r11, r2, #&CF00     ;
                    LSR r11, r11, #9        ;
                    ORR r6, r9,r11          ;
                    ORR r6, r6, r10         ;
                    BX  lr                  ;

    compareIEEE     CMP r1, r6              ;
                    BLEQ    Done            ;

    IEEE            DCD &4400C800           ;
    TNS             DCD &00C80112           ;

            END

我对这个程序的整体问题是我不知道为什么它们彼此不相等,因为从我调试时看到的,我正在比较的寄存器被设置为零,当然也没有回答将等于那个。有了这个作业到今天结束,我需要巨大的帮助!

0 个答案:

没有答案