;Write assembly language code for all type of unconditional program flow control instructions.
;************************unconditional branch*****************************************
;Table 1: branch instructions with ranges
;==============================================================================
;Branch range Available instruction
;==============================================================================
;Under +/–254 bytes B label
; B<cond> label
;Under +/–2 KB B label
;Under +/–16 MB BL label, BX LR
;Over +/–16 MB LDR R0, =label ; Load the address value of label in R0
; BX R0; Branch to address pointed to by R0, or
; BLX R0; Branch to address pointed to by R0 and update LR
;==============================================================================
TTL transfer
AREA Myprog, CODE, READONLY
ENTRY
EXPORT main
main
B LOAD_R2 ; B to the label
load_return
;Branch and link with updated value of LR = R14
BL LOAD_ADD1 ;branch and updated PC link to the LR(R14), return to the next instruction
;***************************by-pass subroutine***************************
LOOP17 B done
;*****************sub-routins********************************************
LOAD_R2
MOVS R2,#0X04
LDR R0,=load_return ; psudo load value of label into the R0 for BX instruction
BX R0 ; unconditional return through branch and exchange
;loop inside the loop
;use of BLX and BL with <Rm>
LOAD_ADD1
MOV R1,R14 ;Storing the LR(R14) value into R1 for further use
LDR R2,=load
BLX R2 ;Jump to the PC where R2 is pointing and update LR with new value
LDR R3,=add2
BLX R3 ;Jump to the PC where R3 is pointing and update LR with new value
BX R1 ;Return from original location/ return to the line BL LOAD_ADD1
;load subroutine
load LDR R6,=0x034
LDR R7,=0x235
BX LR ; return to the line next to BLX R2
;add subroutine
add2 ADDS R6, R7, R6
BX LR ; return to the line next to BLX R3
;*****************end of subroutine****************************************
done
SWI &11
END
Adsense
Write assembly language code for all type of unconditional program flow control instructions.
Subscribe to:
Post Comments (Atom)
Write a ARM cortex M0+ assembly language code based on arithmatc and logical instructions.
Problem 1: Implement following code conversions to convert binary no 0x89ABCDEF(32-bits) into a) BCD (64-bits) b) Gray (32-bits) Problem...
-
;Write assembly language code for all type of the conditional for value comparison operations TTL transfer AREA Myprog, CODE, READ...
-
Table SW1 SW2 SW3 SW4 Operation Result stored on location OFF ...
-
// this is basic LED blinking code realize without external header file of the MKL25Z.h /* System Integration Module System Clock Gating Co...
No comments:
Post a Comment