MSR CPSR_C£¬R0 MOV PC£¬LR
³ÌÐòÇåµ¥4.4½ûÄÜIRQÖÐ¶Ï DISABLE_IRQ
MRS R0 CPSR
ORR R0£¬R0£¬#0x80 MSR CPSR_C£¬R0 MOV PC£¬LR
³ÌÐòÇåµ¥4.5¶ÑÕ»Ö¸Áî³õʼ»¯ INTSTACK
WOV R0£¬LR £»±£´æ·µ»ØµØÖ· £»ÉèÖùÜÀíģʽ¶ÑÕ» MSR CPSR_C£¬#0xD3 LDR SP£¬stacksvc £»ÉèÖÃÖжÏģʽ¶ÑÕ»
MSR CPSR_C£¬#0xD2 LDR SP£¬Stacklrq ¡¡
³ÌÐòÇåµ¥4.6С·¶Î§µØÖ·µÄ¼ÓÔØ ¡¡
ADR R0£¬DISP_TAB £»¼ÓÔØ×ª»»±íµØÖ·
LDRB R1£¬[R0£¬R2] £»Ê¹ÓÃR2×÷Ϊ²ÎÊý£¬½øÐвé±í ¡¡ DISP_TAB
DCB 0xC0£¬0xF9£¬0xA4£¬0xB0£¬0x99£¬0x92£¬0x82£¬0xF8£¬0x80£¬0x90 ³ÌÐòÇåµ¥4.7Öеȷ¶Î§µØÖ·µÄ¼ÓÔØ ¡¡
ADR LR£¬RETURNI ADRL R1£¬Thumb_sub£«1 BX R1 RETURNI ¡¡ CODE 16 Thumb_sub
MOV R1£¬#10 ¡¡
³ÌÐòÇåµ¥4.8¼ÓÔØ32λÁ¢¼´Êý ¡¡
LDR R0£¬=IOPIN £»¼ÓÔØGPIOµÄ¼Ä´æÆ÷IOPINµÄµØÖ· LDR R1£¬[R0] £»¶ÁÈ¡IOPIN¼Ä´æÆ÷µÄÖµ ¡¡
LDR R0£¬=IOSET
LDR R1£¬=0x00500500
STR R1£¬[R0] £»IOSET=0x00500500 ¡¡
³ÌÐòÇåµ¥4.9Èí¼þÑÓʱ ¡¡ DELAYI NOP NOP
NOP
SUBS R1£¬R1£¬#1 BNE DELAYI ¡¡
³ÌÐòÇåµ¥4.10 ARMµ½ThumbµÄ״̬Çл» £»ÎļþÃû£ºTEST8.S
£»¹¦ÄÜ£ºÊ¹ÓÃBXÖ¸ÁîÇл»´¦ÀíÆ÷״̬ £»ËµÃ÷£ºÊ¹ÓÃARMulateÈí¼þ·ÂÕæµ÷ÊÔ AREA Example8£¬CODE£¬READONLY ENTRY
CODE32
ARM_CODE ADR R0£¬THUMB_CODE+1
BX R0 £»Ìø×ª²¢Çл»´¦ÀíÆ÷״̬ CODE16 THUMB_CODE
MOV R0£¬#10 £»R0=10 MOV R1£¬#20 £»R1=20 ADD R0£¬R1 £»R0=R0+R1 B
END
Ïà¹ØÍÆ¼ö£º