回覆列表
  • 1 # lanfengz1

    程式經過模擬除錯透過,如下所示:

    MOV R0, TL0

    MOV R1, TH0

    CLR A

    MOV R2, A;先清零

    MOV R3, A

    MOV R4, A,

    MOV R5, #16;共轉換十六位數

    LOOP:

    CLR C

    MOV A, R0;從待轉換數的高階移出一位到Cy

    RLC A

    MOV R0, A

    MOV A, R1

    RLC A

    MOV R1, A

    MOV A, R4;送到BCD碼的低端

    ADDC A, R4;帶進位加。自身相加,相當於左移一位

    DA A ;十進位制調整,變成BCD碼

    MOV R4, A

    MOV A, R3

    ADDC A, R3

    DA A

    MOV R3, A

    MOV A, R2

    ADDC A, R2

    MOV R2, A

    DJNZ R5, LOOP;共轉換十六位數

    ;-------至此,已經把TH1 TL1中的數字,轉換成BCD碼,送到了R2 R3 R4。

    ;-------下面,分別存入R4 R3 R2 R1 R0。

    MOV A, R4

    MOV B, #16

    DIV AB

    MOV R1, A

    MOV R0, B

    MOV A, R2

    MOV R4, A

    MOV A, R3

    MOV B, #16

    DIV AB

    MOV R3, A

    MOV R2, B

    RET

  • 中秋節和大豐收的關聯?
  • 汽車發動機機油怎樣區分?