精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用匯編和C語言 寫流水燈程序

開發 后端
現在可能很少看到匯編程序了,但單片機的啟動文件、RTOS底層代碼等一些地方,依然還有匯編代碼的身影。不知道大家有沒有學過匯編,或者有沒有用匯編語言編過程?

 [[394717]]

現在可能很少看到匯編程序了,但單片機的啟動文件、RTOS底層代碼等一些地方,依然還有匯編代碼的身影。

不知道大家有沒有學過匯編,或者有沒有用匯編語言編過程?

今天就給大家分享一下匯編語言的那些事。

1學習匯編語言

我在10年學習單片機編程的時候,老師教學都還是用匯編教我們,包括教學實驗,也是要求我們用匯編寫程序。

  1. MOV  A,#00H 
  2. MOV  P1,A 

我記得那會兒,老師要求我們把匯編指令背下來。雖然現在很多匯編指令寫不出來了,但看到很多匯編代碼,還是基本明白它的意思。

以前計算機三級(PC技術)的上機考試,就是用匯編編程,我那個時候上機考試還是滿分。當時覺得自己很牛逼,現在看來就是一菜鳥圖片

2匯編轉C語言

剛開始學習匯編那會兒,我真的用匯編在51單片機上寫流水燈程序。后面看了用C語言寫流水燈程序,突然發現,哇,用C語言寫程序還能這么簡單、方便。

于是,我就那個時候開始放棄了匯編,轉向了C語言。包括后面我在大學實驗室自己學習、DIY做東西、以及后面的全國大學生電子設計競賽,都是用C語言編寫的程序。

10行匯編程序,可能只需要一行C語言代碼就能實現,這是C語言相比匯編簡化的優點。

但是,C語言編寫的程序,經過編譯,也會轉為匯編。比如我們在線調試代碼的時候,會看到類似的“匯編窗口”:

因為以前單片機的運行速度不高,且內存和Flash容量不大,要求節約程序空間。

所以使用匯編的優點:代碼運行效率更高、更節約代碼存儲空間。

3對比用匯編和C語言寫流水燈程序

匯編語言寫程序的主要缺點:語法復雜、可讀性差、代碼量大等。

下面分享一個實例:51單片機上的流水燈程序。分別用C語言和匯編寫出來,大家對比一下就知道了。

C語言版:

  1. /******************** 宏定義 **************************/ 
  2. #define   MAIN_Fosc    22118400L  //定義主時鐘 
  3.  
  4. /******************** 延時函數 **************************/ 
  5. void  delay_ms(u8 ms) 
  6.      u16 i; 
  7.    do{ 
  8.         i = MAIN_Fosc / 13000; 
  9.       while(--i)  ;   //14T per loop 
  10.      }while(--ms); 
  11.  
  12. /******************** 主函數 **************************/ 
  13. void main(void) 
  14.   P0M1 = 0;  P0M0 = 0;  //設置為準雙向口 
  15.   P1M1 = 0;  P1M0 = 0;  //設置為準雙向口 
  16.   P2M1 = 0;  P2M0 = 0;  //設置為準雙向口 
  17.   P3M1 = 0;  P3M0 = 0;  //設置為準雙向口 
  18.   P4M1 = 0;  P4M0 = 0;  //設置為準雙向口 
  19.   P5M1 = 0;  P5M0 = 0;  //設置為準雙向口 
  20.   P6M1 = 0;  P6M0 = 0;  //設置為準雙向口 
  21.   P7M1 = 0;  P7M0 = 0;  //設置為準雙向口 
  22.  
  23.   while(1) 
  24.   { 
  25.     P17 = 0; 
  26.     delay_ms(250); 
  27.     delay_ms(250); 
  28.     P17 = 1; 
  29.     P16 = 0; 
  30.     delay_ms(250); 
  31.     delay_ms(250); 
  32.     P16 = 1; 
  33.     P47 = 0; 
  34.     delay_ms(250); 
  35.     delay_ms(250); 
  36.     P47 = 1; 
  37.     P46 = 0; 
  38.     delay_ms(250); 
  39.     delay_ms(250); 
  40.     P46 = 1; 
  41.   } 

匯編語言版:

  1. ;******************** 宏定義 **************************/ 
  2. Fosc_KHZ  EQU  22118  ;22118KHZ 
  3.  
  4. STACK_POIRTER  EQU    0D0H  ;堆棧開始地質 
  5.  
  6.  
  7. ;******************** 延時函數 **************************/ 
  8. F_delay_ms: 
  9.   PUSH  02H    ;入棧R2 
  10.   PUSH  03H    ;入棧R3 
  11.   PUSH  04H    ;入棧R4 
  12.  
  13.   MOV    R2,A 
  14.  
  15. L_delay_ms_1: 
  16.   MOV    R3, #HIGH (Fosc_KHZ / 13) 
  17.   MOV    R4, #LOW (Fosc_KHZ / 13) 
  18.    
  19. L_delay_ms_2: 
  20.   MOV    A, R4      ;1T    Total 13T/loop 
  21.   DEC    R4        ;2T 
  22.   JNZ    L_delay_ms_3  ;4T 
  23.   DEC    R3 
  24. L_delay_ms_3: 
  25.   DEC    A        ;1T 
  26.   ORL    A, R3      ;1T 
  27.   JNZ    L_delay_ms_2  ;4T 
  28.    
  29.   DJNZ  R2, L_delay_ms_1 
  30.  
  31.   POP    04H    ;出棧R2 
  32.   POP    03H    ;出棧R3 
  33.   POP    02H    ;出棧R4 
  34.   RET 
  35.  
  36.  
  37. ;******************** 主程序 **************************/ 
  38.     ORG    0100H    ;reset 
  39. F_Main: 
  40.   CLR    A 
  41.   MOV    P0M1, A   ;設置為準雙向口 
  42.    MOV    P0M0, A 
  43.   MOV    P1M1, A   ;設置為準雙向口 
  44.    MOV    P1M0, A 
  45.   MOV    P2M1, A   ;設置為準雙向口 
  46.    MOV    P2M0, A 
  47.   MOV    P3M1, A   ;設置為準雙向口 
  48.    MOV    P3M0, A 
  49.   MOV    P4M1, A   ;設置為準雙向口 
  50.    MOV    P4M0, A 
  51.   MOV    P5M1, A   ;設置為準雙向口 
  52.    MOV    P5M0, A 
  53.   MOV    P6M1, A   ;設置為準雙向口 
  54.    MOV    P6M0, A 
  55.   MOV    P7M1, A   ;設置為準雙向口 
  56.    MOV    P7M0, A 
  57.  
  58.   MOV    SP, #STACK_POIRTER 
  59.   MOV    PSW, #0    ;選擇第0組R0~R7 
  60.  
  61. L_MainLoop: 
  62.   CLR    P1.7 
  63.   MOV    A, #250 
  64.   LCALL  F_delay_ms    ;延時250ms 
  65.   LCALL  F_delay_ms    ;延時250ms 
  66.   SETB  P1.7 
  67.  
  68.   CLR    P1.6 
  69.   MOV    A, #250 
  70.   LCALL  F_delay_ms    ;延時250ms 
  71.   LCALL  F_delay_ms    ;延時250ms 
  72.   SETB  P1.6 
  73.  
  74.   CLR    P4.7 
  75.   MOV    A, #250 
  76.   LCALL  F_delay_ms    ;延時250ms 
  77.   LCALL  F_delay_ms    ;延時250ms 
  78.   SETB  P4.7 
  79.  
  80.   CLR    P4.6 
  81.   MOV    A, #250 
  82.   LCALL  F_delay_ms    ;延時250ms 
  83.   LCALL  F_delay_ms    ;延時250ms 
  84.   SETB  P4.6 
  85.  
  86.   SJMP  L_MainLoop 

上面兩個程序,實現的功能都一樣(流水燈),但對比代碼,大家發現有啥區別?

對于有匯編基礎的同學來說,可能這個簡單的流水燈程序還是很好理解。

但是,對于大部分人來說,肯定都會覺得匯編很難讀。是的,這個是匯編的“特點”。

4最后

匯編語法,對于絕大部分讀者來說,我現在是不建議再深入學習了,只需要了解一些基礎的內容即可。

有少部分人,想從事底層開發,比如底層驅動、單片機驗證、固件庫開發等這些讀者,有時間還是可以進一步了解匯編的一些技術。

 

責任編輯:武曉燕 來源: 嵌入式專欄
相關推薦

2017-01-12 22:36:30

2020-12-14 08:48:45

C語言嵌入式gcc

2009-08-13 17:04:09

C#語言C#程序

2014-04-15 15:35:32

CC語言

2022-02-19 22:47:46

編程語言開發C++

2010-03-25 18:13:06

Python編程語言

2009-09-11 08:44:36

2024-06-03 09:04:30

2015-03-19 09:46:32

程序員

2020-12-22 11:54:42

C語言Cortex-A9LED匯編

2012-03-20 09:20:40

Go語言

2010-04-07 14:54:20

Unix操作系統

2011-01-14 14:08:17

Linux匯編語言

2014-12-24 09:41:05

x86C#

2022-03-25 21:57:49

匯編Go語言

2011-01-14 14:39:32

Linux匯編語言

2014-08-22 16:29:12

應用匯游戲評級資源策略

2009-06-15 11:03:10

Java語言C#語言

2018-04-26 15:18:49

RTOS應用MPU

2010-01-22 11:23:06

C++程序
點贊
收藏

51CTO技術棧公眾號

亚洲人体大胆视频| 亚洲国产高清在线观看| 中文字幕不卡在线| 69av一区二区三区| 一区二区在线中文字幕电影视频| 国产日本精品视频| 国产欧美91| 日韩最新免费不卡| 看全色黄大色黄女片18| 香蕉视频亚洲一级| 综合久久给合久久狠狠狠97色| 高清国产一区| 日韩中文字幕高清| 欧美激情麻豆| 国产一区二区三区在线| 成人av在线不卡| 欧洲综合视频| 国产美女一区二区三区| 国产91在线播放精品91| 免费中文字幕在线| 在线手机中文字幕| 亚洲女人小视频在线观看| 欧美高清视频一区| 成人1区2区3区| 青青草一区二区三区| 欧美精品福利视频| 99久久精品久久亚洲精品| 久久国产精品色av免费看| 91精品午夜视频| 免费一级特黄录像| 色偷偷色偷偷色偷偷在线视频| 亚洲欧美中日韩| 日本一区二区三区在线视频| 欧美一区二区三区黄片| 国内精品不卡在线| 欧美又大粗又爽又黄大片视频| 免费高清在线观看电视| 欧洲美女精品免费观看视频| 亚洲国产经典视频| 狠狠色综合色区| 亚洲精品97久久中文字幕| 久久99久久99精品免视看婷婷| 日本高清视频一区| 国产无码精品视频| 午夜久久一区| 久久91精品国产| 日韩国产第一页| 99久久夜色精品国产亚洲1000部| 中文字幕精品网| 亚洲国产日韩一区无码精品久久久| 网曝91综合精品门事件在线| 亚洲国模精品一区| 欧美一区二区免费在线观看| 成人福利免费在线观看| 欧美成人r级一区二区三区| 一二三av在线| 亚洲精品一区二区三区在线| 欧美白人最猛性xxxxx69交| 国产欧美精品一二三| 3d动漫一区二区三区在线观看| 欧美三级电影一区| 五月婷婷六月丁香激情| 亚洲18在线| 91麻豆精品国产无毒不卡在线观看| 九一精品久久久| 日韩免费成人| 亚洲国产精品成人va在线观看| 国产麻豆剧传媒精品国产av| 欧美交a欧美精品喷水| 日韩大陆欧美高清视频区| 国产成人手机视频| 91精品影视| 欧美日韩成人激情| 国产成人强伦免费视频网站| 97青娱国产盛宴精品视频| 精品国产一二三区| theav精尽人亡av| 欧美日韩老妇| 日韩有码视频在线| 加勒比婷婷色综合久久| 亚洲国内欧美| 国产精品69av| 国产美女激情视频| 日韩精品亚洲专区| 成人黄色片网站| 日本高清视频www| 国产亚洲婷婷免费| 中文网丁香综合网| 高清电影在线免费观看| 日韩欧美国产骚| 在线观看国产中文字幕| 亚洲图色一区二区三区| 精品中文字幕久久久久久| 日本猛少妇色xxxxx免费网站| 你懂的成人av| 欧美最近摘花xxxx摘花| 国产精品久久久久久久久毛片 | 亚洲电影影音先锋| 欧美激情一二三| wwwwww在线观看| 成人少妇影院yyyy| 亚洲图片都市激情| 69av成人| 3d动漫精品啪啪| 成人手机在线免费视频| 国产国产精品| 青青久久aⅴ北条麻妃| aaa国产视频| 国产欧美视频在线观看| 大西瓜av在线| 国产精品伦一区二区| 精品久久久久久亚洲国产300| 亚洲三级视频网站| 久久男人av| 欧美大尺度激情区在线播放| 国产精品第六页| 成人高清伦理免费影院在线观看| 亚洲午夜精品福利| 激情黄产视频在线免费观看| 亚洲h动漫在线| 嫩草视频免费在线观看| 久久最新网址| 9.1国产丝袜在线观看| 国产美女免费看| 欧美激情自拍偷拍| 亚洲爆乳无码专区| 激情亚洲另类图片区小说区| 久久99精品久久久久久琪琪 | 日韩av不卡在线观看| 国产伦视频一区二区三区| 国产一区久久精品| 欧美日高清视频| 久久精品三级视频| 久久久久久夜| 麻豆亚洲一区| 五月天av在线| 日韩黄色av网站| 久久精品视频9| 国产成人啪午夜精品网站男同| 在线电影看在线一区二区三区| 精品肉辣文txt下载| 亚洲老司机av| av一级在线观看| 日本最新不卡在线| 久久综合中文色婷婷| 狠狠躁少妇一区二区三区| 精品国产一区二区三区久久影院 | 欧美丰满少妇人妻精品| 国产精品v欧美精品v日本精品动漫| 国产欧美韩国高清| 欧美性猛交xxx乱大交3蜜桃| 欧美精品丝袜中出| 国产一区二区三区在线视频观看| 国产真实精品久久二三区| 曰韩不卡视频| 日韩一区二区三区精品| 欧美日韩爱爱视频| 亚洲精品一级片| 亚洲mv在线观看| 久久精品国产亚洲AV熟女| 国产精品一二| 视频一区不卡| 先锋影音一区二区| 欧美国产高跟鞋裸体秀xxxhd| 亚洲精品久久久蜜桃动漫| 亚洲成人免费看| 3d动漫精品啪啪一区二区下载| 香蕉久久久久久久av网站| 欧美尤物一区| 日本午夜免费一区二区| 欧美大片第1页| 午夜视频福利在线观看| 国产精品久久久久永久免费观看| 成人在线国产视频| 国内精品麻豆美女在线播放视频| 最近2019中文字幕在线高清| 一本色道久久综合无码人妻| 久久人人超碰精品| 欧美伦理片在线观看| 日韩精品欧美大片| 国产精品极品在线| 中日韩高清电影网| 亚洲精品久久久久| 五月天中文字幕| 一区二区成人在线| 国产 欧美 在线| 国产精品99久久久久久久女警| 免费看又黄又无码的网站| 欧美老女人另类| 999视频在线观看| 美州a亚洲一视本频v色道| 欧美午夜片在线看| 久久久.www| 国产日产欧美一区| 亚洲精品鲁一鲁一区二区三区 | 精品日韩免费| 国产精品久久亚洲7777| 姬川优奈av一区二区在线电影| 欧美激情精品久久久久久免费印度| 九九九伊在人线综合| 亚洲成人在线观看视频| 亚洲色图第四色| 不卡大黄网站免费看| 色婷婷.com| 天使萌一区二区三区免费观看| 一区二区三区欧美在线| 牛牛影视一区二区三区免费看| 成人免费在线视频网站| 亚洲欧洲自拍| 欧美精品一区在线播放| www.久久热.com| 精品视频在线导航| 亚洲高清视频网站| 欧美日韩在线亚洲一区蜜芽| 国产精品美女久久久久av爽| 亚洲精品日日夜夜| 永久免费毛片在线观看| 91在线看国产| 性生交大片免费看l| 久草中文综合在线| www日韩在线观看| 国产手机视频一区二区| 小泽玛利亚av在线| 日韩夫妻性生活xx| 欧美久久久久久久| 日韩美女毛片| 国产日韩在线一区二区三区| 免费观看亚洲视频大全| 国产日韩欧美日韩| 成人国产精品| 久久中文精品视频| 二区在线视频| 夜夜嗨av色一区二区不卡| 香蕉av一区二区三区| 精品va天堂亚洲国产| 国产三级按摩推拿按摩| 欧美日韩国产精选| 一级一级黄色片| 欧美偷拍一区二区| 最近中文字幕在线视频| 色综合咪咪久久| 日韩 国产 欧美| 色综合久久久久| www.国产一区二区| 亚洲女同ⅹxx女同tv| 91香蕉视频污在线观看| 国产精品美女久久久久久久久| 亚洲一区 欧美| 中文一区一区三区高中清不卡| 亚洲码无人客一区二区三区| 国产日韩欧美麻豆| www亚洲色图| 国产精品久线在线观看| 国产精品免费在线视频| 1024精品合集| 久久97人妻无码一区二区三区| 亚洲一区在线观看网站| 国产精品 欧美 日韩| 午夜伦欧美伦电影理论片| 久久精品国产成人av| 欧美天堂在线观看| 91黑人精品一区二区三区| 精品视频在线视频| 国产日韩欧美视频在线观看| 日韩免费观看高清完整版| 人人妻人人澡人人爽精品日本| 精品夜色国产国偷在线| 成人福利在线| 久久综合免费视频影院| av在线小说| 国产97在线|亚洲| 亚洲tv在线| 国产精品一区二区欧美| 一区二区导航| 亚洲图片都市激情| 欧美日韩午夜| 韩国日本在线视频| 麻豆精品在线观看| 男人操女人下面视频| av在线不卡免费看| 91麻豆精品国产91久久综合| 亚洲欧洲精品天堂一级| 国产一级二级三级| 在线日韩国产精品| h狠狠躁死你h高h| 国产视频久久久久| 日本www在线观看| 97人洗澡人人免费公开视频碰碰碰| 国模一区二区| 成人激情直播| 欧美色婷婷久久99精品红桃| 国产精品自拍合集| 老妇喷水一区二区三区| 波多野结衣电影免费观看| www久久久久| 国内偷拍精品视频| 色婷婷综合五月| 蜜桃久久一区二区三区| 中文字幕亚洲国产| 男人av在线播放| 91在线观看免费高清完整版在线观看| 日韩最新在线| 成人免费在线视频播放| 久久99精品视频| 91成年人网站| 亚洲大片在线观看| 国产精品一区二区三区在线免费观看| 日韩国产精品一区| 免费在线中文字幕| 国产日韩精品在线| 禁果av一区二区三区| 全黄性性激高免费视频| 国模大尺度一区二区三区| 久久精品视频18| 香蕉成人伊视频在线观看| 国产视频一区二区三| 一个色综合导航| 周于希免费高清在线观看| caoporen国产精品| 日韩中文在线电影| 日本精品久久久久中文字幕| 播五月开心婷婷综合| 久久久夜色精品| 欧美一区二区久久| www精品国产| 色综合影院在线| 欧美日一区二区三区| 日本成人看片网址| 一区二区三区国产在线| 在线观看免费视频国产| 尤物在线观看一区| 国产农村老头老太视频| 最近2019中文免费高清视频观看www99| 在线免费av资源| 欧美不卡福利| 视频一区欧美精品| 成人免费毛片糖心| 欧美天天综合色影久久精品| 亚洲欧美日韩精品永久在线| 97视频在线观看免费高清完整版在线观看| 免费看一区二区三区| 影音先锋成人资源网站| 久久精品国产**网站演员| 欧美a在线播放| 欧美日韩一区二区三区视频| 在线免费看a| 成人深夜直播免费观看| 我不卡影院28| 韩国三级与黑人| 亚洲高清视频中文字幕| 无码国精品一区二区免费蜜桃| 国内偷自视频区视频综合| 久久精品国产亚洲blacked| 国产99久久九九精品无码| 久久先锋影音av鲁色资源| 手机在线看片1024| 在线观看久久久久久| 婷婷精品久久久久久久久久不卡| 黄瓜视频免费观看在线观看www| 韩国av一区二区三区四区| 91porn在线视频| 精品国产乱码久久久久久久| 九九精品调教| 久久精品美女| 男人操女人的视频在线观看欧美| 成人欧美一区二区三区黑人一| 日韩一区二区三区三四区视频在线观看 | 成人99免费视频| 久久精品视频5| 色吧影院999| 亚洲精品高潮| 激情综合网婷婷| 国产精品每日更新| 国产成人麻豆精品午夜在线| 91精品国产91久久久| 精品欧美激情在线观看| 亚洲黄色av片| 五月婷婷色综合| jizz日韩| 成人看片在线| 久久在线精品| 丰满少妇被猛烈进入一区二区| 亚洲国产美女久久久久| 成人在线爆射| 欧洲美女和动交zoz0z| 99re亚洲国产精品| 一级黄色大片免费观看| 欧美激情a∨在线视频播放| 美女久久99| 宇都宫紫苑在线播放| 在线视频欧美精品| 蜜桃传媒在线观看免费进入 | 色综合视频一区二区三区高清| 一级毛片视频在线观看| 国产日韩欧美一区二区| 精品一区二区三区视频| 亚洲男人第一av| 久久综合电影一区| 欧美日韩久久精品| 亚洲国产精品狼友在线观看|