icall32.asm

来自「OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI」· 汇编 代码 · 共 36 行

ASM
36
字号
;******************************************************************************
;* ICALL32.ASM  - 32 BIT STATE -  v2.24                                      *
;* Copyright (c) 1996-2002 Texas Instruments Incorporated                     *
;******************************************************************************

;****************************************************************************
;* IND_CALL - PERFORM INDIRECT CALL, SUPPORTING DUAL STATE INTERWORKING
;*
;****************************************************************************
;*
;*   o ADDRESS OF CALLED FUNCTION IS IN r4
;*   o r4 GETS DESTROYED
;*
;****************************************************************************
	.state32

	.global IND_CALL

IND_CALL:
	TST	r4, #1			; TEST STATE OF DESTINATION
	BNE	ep_16	                ;
	BX	r4                      ; INDIRECT CALL TO 32BIS ENTRY POINT

ep_16:	MOV	ip, r4			; FREE r4 BY STORING ITS VALUE IN ip
	MOV	r4, lr			; STORE RETURN ADDRESS IN r4
	ADD	lr, pc, #1		; SETUP NEW RETURN ADDRESS
	BX	ip			; INDIRECT CALL TO 16BIS ENTRY POINT
	.state16
	BX	r4			; RETURN
	NOP				;
	.state32

	.end


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?