diff --git a/ES/Lab/LAB4/HEXtoBCD2.asm b/ES/Lab/LAB4/HEXtoBCD2.asm new file mode 100644 index 0000000..10ab8e1 --- /dev/null +++ b/ES/Lab/LAB4/HEXtoBCD2.asm @@ -0,0 +1,43 @@ + AREA RESET, DATA, READONLY + EXPORT __Vectors +__Vectors + DCD 0x10001000 + DCD Reset_Handler + ALIGN + + AREA MYCODE, CODE, READONLY + ENTRY + EXPORT Reset_Handler + +Reset_Handler + LDR R0, =SRR + LDR R1, [R0] + MOV R4, #0 + MOV R11, #1 + MOV R10, #3 + +LOOP + MOV R2, R1 + MOV R3, #0 + +DIV_LOOP + CMP R2, #10 + BLT DIV_DONE + SUB R2, R2, #10 + ADD R3, R3, #1 + B DIV_LOOP + +DIV_DONE + MUL R8, R2, R11 + ADD R4, R4, R8 + LSL R11, R11, #4 + MOV R1, R3 + SUBS R10, R10, #1 + BNE LOOP + +STOP + B STOP + +SRR DCD 0x45 + + END \ No newline at end of file