ϵͳѧϰARMÖ®¶þ --ARMÖ¸Á
·¢²¼Ê±¼ä£º2020-12-14 02:18:34 ËùÊôÀ¸Ä¿£º´óÊý¾Ý À´Ô´£ºÍøÂçÕûÀí
µ¼¶Á£ºÒ»¡¢¼ò½é £º ¶¨Ò壺 ? ? ARM Ö¸Á£ºARM´¦ÀíÆ÷Äܹ»ÔËÐеÄÃüÁîµÄ¼¯ºÏ¡£ ÌØµã£º ËùÓÐARMÖ¸Áî¾ùΪ32-bits³¤ ´ó²¿·ÖΪµ¥ÖÜÆÚÖ¸Áî ? ? ? 1T ËùÓÐÖ¸Áî¶¼¿ÉÒÔÌõ¼þÖ´ÐÐ ²ÉÓà Load/Store ¼Ü¹¹ ?--- load/storeÖ¸Áî ? ? ? ? ? mov r1,100 ? @ r1 =*(100) ?°ÑÄÚ´æµØÖ·
Ò»¡¢¼ò½é£º
¶¨Ò壺
? ? ARM Ö¸Á£ºARM´¦ÀíÆ÷Äܹ»ÔËÐеÄÃüÁîµÄ¼¯ºÏ¡£
ÌØµã£º
? ? ? ? ? mov r1,100 ? @ r1 =*(100) ?°ÑÄÚ´æµØÖ·Îª100µÄµ¥Ôª¸ñÀïµÄÄÚÈݸ³Öµ¸ør1£¬ARMÖ¸Áî ²»Ö§³Ö
? ? ? ? ? mov r1,#100 ?@ r1=100
¶þ¡¢Êý¾Ý´¦ÀíÖ¸Á1. Ö¸Á
? ? ? ? µÚ¶þÆÚ ½²Ò壨Ï£©ÖеÄ26Ò³
2. Ìõ¼þÂ룺ÅжÏÖ¸ÁîÊÇ·ñÖ´ÐеÄÒÀ¾Ý
3. Ö¸ÁîÈçºÎÖ´ÐÐ £º
? Ê×ÏÈÅжÏÌõ¼þÂëÊÇ·ñ³ÉÁ¢£¬CPSRÌõ¼þλºÍÌõ¼þÂë±êÖ¾
? ? ? ? ? ? ? ? ³ÉÁ¢ ? ?-- Ö¸ÁîÖ´ÐÐ
? ? ? ? ? ? ? ? ²»³ÉÁ¢ --- Ö¸Áî²»Ö´ÐÐ
? ? ? ?
? ? ? ? ?cmp ? r1£¬#3 ? @ r1- 3 £¬½á¹ûÓ°ÏìÁËCPSRµÄÌõ¼þλ ?½á¹ûΪ0£¬Z=1 ?½á¹û²»Îª0£¬Z=0
? ? ? ?addeq ?r2 £¬r1£¬r1 ? ? ? z=1,eqÌõ¼þÂë³ÉÁ¢; z=0£¬eqÌõ¼þÂë²»³ÉÁ¢
4. Ìõ¼þλµÄÓ°Ï죺
? ? ?1-- ĬÈÏËùÓеÄÖ¸Á²»»áÓ°ÏìCPSR¼Ä´æÆ÷µÄÌõ¼þλnzcv
? ? ? ? ?³ýÁ˱ȽÏÖ¸Á ±È½ÏÖ¸ÁCMP CMN TST TEQ
? ? ?1-- ͨ¹ýÖ¸ÁîºóÃæ¼ÓS£¬Ö¸ÁîµÄÖ´ÐоͿ϶¨»áÓ°Ïìnzcvλ
Àý×Ó£º
? ? if (a==4 || a==10) --> cmp r4£¬#4
? ? ? ? ? ? ? ? ? ?x=0; ? ? ? ? ? ? ?cmpne r4,#10
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? moveq r5,#0
ËÄ¡¢Ìø×ªÖ¸Á
??????? Branch :
B{<cond>} label
??????? Branch with Link :
BL{<cond>} subroutine_label
Ïà¶ÔÌø×ª£º
? ? ? ? pc'= pc +Æ«ÒÆÁ¿
Ìø×ª·¶Î§£º
? ????? ¡À 32 Mbyte
Îå¡¢½»»»Ö¸Áî?£º
£¨1£©Ö¸ÁÄÜ£ºÔڼĴæÆ÷ºÍ´æ´¢Æ÷Ö®¼ä£¬ÓÉÒ»´Î´æ´¢Æ÷¶ÁºÍÒ»´Î´æ´¢Æ÷д×é³ÉµÄ
Ô×Ó²Ù×÷¡£
? ? ? ? ? ? (Ô×Ó²Ù×÷±íʾ£¬ÔÚ²Ù×÷µÄʱºò²»Äܱ»±ðµÄ³ÌÐò´ò¶Ï)
? ? ? ? Ò»ÌõÖ¸ÁîÍê³ÉÁËÄÚ´æµ¥ÔªºÍ¼Ä´æÆ÷µÄÊý¾Ý½»»»
? ? ? ? swp£¨×Ö½»»»£©£ºÏ൱ÓÚ
? ? ? ? ? ? ?temp ? = *£¨Rn£©
? ? ? ? ? ? ?*£¨Rn£©= Rm
? ? ? ? ? ? Rd ? ? = temp
? ? ? ? ? ? ? ? ÊÇ
32λµÄ²Ù×÷
? ? ? ? swpb£¨×Ö½Ú½»»»£©£ºÒ²Í¬Éϱߣ¬Ö»ÊDzÙ×÷µÄÊÇ
8λµÄÊý¾Ý
? ? ? ? ? ? ½«ÄÚ´æÖеÄÒ»¸ö×Ö½Úµ¥ÔªºÍÒ»¸öÖ¸¶¨¼Ä´æÆ÷µÄ
µÍ8λÏཻ»»¡£
£¨2£©ÐźÅÁ¿²Ù×÷
£¨3£©×¢Ò⣺
???????? ²»ÄÜͨ¹ýдcÓïÑÔ³ÌÐòʵÏÖ¸ÃÖ¸Áî
? ? ? ?? Ö»ÄÜͨ¹ýÊÖд»ã±à
Áù¡¢ÈíÖжÏÖ¸Áî?£º
£¨1£©Ö¸ÁÄÜ£ºÒýÆðÒì³££¬ÏµÍ³µ÷ÓÃ
£¨2£©Ö¸Áî¸ñʽ£º
?SWI{<cond>} <SWI number>
Æß¡¢PSR ´«ËÍÖ¸Áî?£º
£¨1£©Ö¸ÁÄÜ£º
CPSR¼Ä´æÆ÷²»ÔÊÐíÊý¾Ý´¦ÀíÖ¸ÁîÖ±½Ó²Ù×÷£¬Ö»ÄÜÓÉPSR¼Ä´æÆ÷²Ù×÷
£¨2£©Ö¸Áî¸ñʽ£º
? ? ?
?
MRS{<cond>} Rd,cpsr ? ? ? ? ? ? ? ? ? ? ?@ Rd ? = cpsr
? ? ?
?
MSR{<cond>} <psr[_fields]>,Rm
?? @ cpsr = Rm
°Ë¡¢Ð´¦ÀíÆ÷Ö¸Áî?£º
д¦ÀíÆ÷¼Ä´æÆ÷´«ËÍÖ¸Áî
? ?MRC£º´Óд¦ÀíÆ÷¼Ä´æÆ÷ÒÆµ½ARM ¼Ä´æÆ÷
? ?MCR£º´Ó ARM ¼Ä´æÆ÷ÒÆµ½Ð´¦ÀíÆ÷¼Ä´æÆ÷
£¨±à¼£ºÀî´óͬ£© ¡¾ÉùÃ÷¡¿±¾Õ¾ÄÚÈݾùÀ´×ÔÍøÂ磬ÆäÏà¹ØÑÔÂÛ½ö´ú±í×÷Õ߸öÈ˹۵㣬²»´ú±í±¾Õ¾Á¢³¡¡£ÈôÎÞÒâÇÖ·¸µ½ÄúµÄȨÀû£¬Ç뼰ʱÓëÁªÏµÕ¾³¤É¾³ýÏà¹ØÄÚÈÝ! |
ÍÆ¼öÎÄÕÂ
Õ¾³¤ÍƼö
ÈȵãÔĶÁ