芒果视频下载

Assembly language
#編程語言# 0 0
Assembly language(匯編語言)是任何一種用于電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。在匯編語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數的地址。Assembly language能夠輕松讀取存儲器狀態以及I/O接口情況,可以準確高效的被執行,具有很強的擴展性。它也具有代碼冗長、編寫困難、容易出BUG而且比較難調試、代碼兼容性差、后期維護不易等缺點。
  • 中文名稱: 匯編語言(yan)
  • 外文名稱: Assembly Language
  • 發布時間: 20世紀50年(nian)代(dai)
詳細(xi)介紹(shao) PROFILE +

基本介紹

匯(hui)編(bian)(bian)語言(yan)(yan)(Assembly Language)是任何(he)一(yi)種用于電子計算機、微(wei)處理器(qi)(qi)、微(wei)控制器(qi)(qi)或(huo)其他可(ke)編(bian)(bian)程器(qi)(qi)件的(de)低級(ji)語言(yan)(yan),亦稱為符號(hao)語言(yan)(yan)。在(zai)匯(hui)編(bian)(bian)語言(yan)(yan)中(zhong),用助記符代(dai)替機器(qi)(qi)指令(ling)(ling)的(de)操作碼,用地址符號(hao)或(huo)標號(hao)代(dai)替指令(ling)(ling)或(huo)操作數的(de)地址。在(zai)不(bu)同的(de)設備中(zhong),匯(hui)編(bian)(bian)語言(yan)(yan)對應(ying)著不(bu)同的(de)機器(qi)(qi)語言(yan)(yan)指令(ling)(ling)集,通過匯(hui)編(bian)(bian)過程轉(zhuan)換(huan)成機器(qi)(qi)指令(ling)(ling)。特(te)定的(de)匯(hui)編(bian)(bian)語言(yan)(yan)和特(te)定的(de)機器(qi)(qi)語言(yan)(yan)指令(ling)(ling)集是一(yi)一(yi)對應(ying)的(de),不(bu)同平臺(tai)之間不(bu)可(ke)直接(jie)移植。

簡介

匯(hui)編(bian)(bian)(bian)語言(yan)(yan)(yan)(yan),即第二代(dai)(dai)計算機(ji)語言(yan)(yan)(yan)(yan),用(yong)一些容(rong)易(yi)理(li)解(jie)和(he)記憶的(de)(de)(de)(de)縮(suo)寫單詞來代(dai)(dai)替(ti)一些特定的(de)(de)(de)(de)指(zhi)令,例如(ru):用(yong)"ADD"代(dai)(dai)表(biao)(biao)加(jia)法操作(zuo)指(zhi)令,"SUB"代(dai)(dai)表(biao)(biao)減法操作(zuo)指(zhi)令,以及(ji)"INC"代(dai)(dai)表(biao)(biao)增加(jia)1,"DEC"代(dai)(dai)表(biao)(biao)減去1,"MOV"代(dai)(dai)表(biao)(biao)變量傳遞等等,通過這(zhe)種方(fang)法,人們很容(rong)易(yi)去閱讀(du)已經(jing)完(wan)成(cheng)的(de)(de)(de)(de)程(cheng)(cheng)(cheng)序或(huo)(huo)者理(li)解(jie)程(cheng)(cheng)(cheng)序正在(zai)執(zhi)行的(de)(de)(de)(de)功能(neng),對現(xian)有程(cheng)(cheng)(cheng)序的(de)(de)(de)(de)bug修復以及(ji)運營維護都(dou)變得更加(jia)簡單方(fang)便。但計算機(ji)的(de)(de)(de)(de)硬(ying)件不認識字母符號,這(zhe)時候就需要(yao)一個專(zhuan)門的(de)(de)(de)(de)程(cheng)(cheng)(cheng)序把這(zhe)些字符變成(cheng)計算機(ji)能(neng)夠(gou)識別的(de)(de)(de)(de)二進制數或(huo)(huo)機(ji)器(qi)語言(yan)(yan)(yan)(yan)。因為匯(hui)編(bian)(bian)(bian)語言(yan)(yan)(yan)(yan)只是將機(ji)器(qi)語言(yan)(yan)(yan)(yan)做(zuo)了簡單編(bian)(bian)(bian)譯,所(suo)(suo)以并(bing)沒(mei)有根本上解(jie)決機(ji)器(qi)語言(yan)(yan)(yan)(yan)的(de)(de)(de)(de)特定性(xing),所(suo)(suo)以匯(hui)編(bian)(bian)(bian)語言(yan)(yan)(yan)(yan)和(he)機(ji)器(qi)自身的(de)(de)(de)(de)編(bian)(bian)(bian)程(cheng)(cheng)(cheng)環境息息相(xiang)關(guan),推廣和(he)移植很難,但是還是保持了機(ji)器(qi)語言(yan)(yan)(yan)(yan)優秀的(de)(de)(de)(de)執(zhi)行效率,因為他(ta)的(de)(de)(de)(de)可(ke)閱讀(du)性(xing)和(he)簡便性(xing),匯(hui)編(bian)(bian)(bian)語言(yan)(yan)(yan)(yan)到現(xian)在(zai)依然是常用(yong)的(de)(de)(de)(de)編(bian)(bian)(bian)程(cheng)(cheng)(cheng)語言(yan)(yan)(yan)(yan)之(zhi)一。匯(hui)編(bian)(bian)(bian)語言(yan)(yan)(yan)(yan)不像其他(ta)大多數的(de)(de)(de)(de)程(cheng)(cheng)(cheng)序設(she)計語言(yan)(yan)(yan)(yan)一樣被(bei)(bei)廣泛用(yong)于程(cheng)(cheng)(cheng)序設(she)計。在(zai)今(jin)天的(de)(de)(de)(de)實際(ji)應用(yong)中,它通常被(bei)(bei)應用(yong)在(zai)底層,硬(ying)件操作(zuo)和(he)高(gao)要(yao)求的(de)(de)(de)(de)程(cheng)(cheng)(cheng)序優化(hua)的(de)(de)(de)(de)場合。驅動程(cheng)(cheng)(cheng)序、嵌入式操作(zuo)系統和(he)實時運行程(cheng)(cheng)(cheng)序都(dou)需要(yao)匯(hui)編(bian)(bian)(bian)語言(yan)(yan)(yan)(yan)。

發展歷程

編程語言

自從(cong)1946年世(shi)界上第一(yi)臺電子計(ji)(ji)算(suan)(suan)機(ji)問世(shi),人(ren)類(lei)和(he)機(ji)器的(de)(de)(de)(de)(de)交流方(fang)式和(he)語(yu)(yu)言(yan)(yan)(yan)就成(cheng)為(wei)了(le)(le)軟(ruan)件(jian)(jian)(jian)工程(cheng)(cheng)師和(he)計(ji)(ji)算(suan)(suan)機(ji)從(cong)業者(zhe)的(de)(de)(de)(de)(de)主(zhu)要(yao)研究(jiu)方(fang)向,更(geng)(geng)有(you)效更(geng)(geng)簡便的(de)(de)(de)(de)(de)編(bian)程(cheng)(cheng)語(yu)(yu)言(yan)(yan)(yan)成(cheng)為(wei)了(le)(le)軟(ruan)件(jian)(jian)(jian)工程(cheng)(cheng)師的(de)(de)(de)(de)(de)新寵兒(er),伴隨著(zhu)計(ji)(ji)算(suan)(suan)機(ji)的(de)(de)(de)(de)(de)飛(fei)速(su)發(fa)展(zhan),計(ji)(ji)算(suan)(suan)機(ji)的(de)(de)(de)(de)(de)硬件(jian)(jian)(jian)升級(ji)速(su)度也越來越快,對編(bian)程(cheng)(cheng)語(yu)(yu)言(yan)(yan)(yan)的(de)(de)(de)(de)(de)要(yao)求(qiu)也日(ri)益嚴格(ge)。在(zai)過去的(de)(de)(de)(de)(de)幾十年,編(bian)程(cheng)(cheng)語(yu)(yu)言(yan)(yan)(yan)有(you)了(le)(le)長足(zu)的(de)(de)(de)(de)(de)發(fa)展(zhan),至今已經有(you)四代(dai)語(yu)(yu)言(yan)(yan)(yan)問世(shi)。大(da)量的(de)(de)(de)(de)(de)編(bian)程(cheng)(cheng)語(yu)(yu)言(yan)(yan)(yan)為(wei)了(le)(le)滿足(zu)不(bu)同(tong)領域(yu)的(de)(de)(de)(de)(de)編(bian)程(cheng)(cheng)要(yao)求(qiu)和(he)軟(ruan)件(jian)(jian)(jian)功能,經歷了(le)(le)被修改(gai),被取(qu)代(dai),被發(fa)展(zhan)等過程(cheng)(cheng),最終發(fa)展(zhan)成(cheng)了(le)(le)現在(zai)編(bian)程(cheng)(cheng)語(yu)(yu)言(yan)(yan)(yan)的(de)(de)(de)(de)(de)多樣化。盡管人(ren)們多次試圖尋找一(yi)個能夠適(shi)應所有(you)編(bian)程(cheng)(cheng)環境的(de)(de)(de)(de)(de)通用(yong)語(yu)(yu)言(yan)(yan)(yan),但是卻沒有(you)一(yi)次成(cheng)功。程(cheng)(cheng)序(xu)設計(ji)(ji)語(yu)(yu)言(yan)(yan)(yan)正在(zai)與現代(dai)科技日(ri)益飛(fei)躍,人(ren)類(lei)的(de)(de)(de)(de)(de)智慧在(zai)日(ri)益彰(zhang)顯。

機器語言

計(ji)(ji)算(suan)機(ji)(ji)的(de)(de)(de)(de)硬件作為(wei)一(yi)種電路元(yuan)件,它的(de)(de)(de)(de)輸出(chu)和(he)輸入只能是有電或者沒電,也就(jiu)是所(suo)說(shuo)的(de)(de)(de)(de)高(gao)電平和(he)低電平,所(suo)以計(ji)(ji)算(suan)機(ji)(ji)傳(chuan)遞的(de)(de)(de)(de)數據是由(you)“0”和(he)“1”組成(cheng)的(de)(de)(de)(de)二進(jin)制(zhi)數,所(suo)以說(shuo)二進(jin)制(zhi)的(de)(de)(de)(de)語(yu)言(yan)(yan)(yan)是計(ji)(ji)算(suan)機(ji)(ji)語(yu)言(yan)(yan)(yan)的(de)(de)(de)(de)本質。計(ji)(ji)算(suan)機(ji)(ji)發(fa)明之初,人們為(wei)了(le)去(qu)控(kong)制(zhi)計(ji)(ji)算(suan)機(ji)(ji)完成(cheng)自己的(de)(de)(de)(de)任務或者項目,只能去(qu)編(bian)寫“0”、“1”這(zhe)樣(yang)的(de)(de)(de)(de)二進(jin)制(zhi)數字(zi)串去(qu)控(kong)制(zhi)電腦,其實就(jiu)是控(kong)制(zhi)計(ji)(ji)算(suan)機(ji)(ji)硬件的(de)(de)(de)(de)高(gao)低電平或通路開路,這(zhe)種語(yu)言(yan)(yan)(yan)就(jiu)是機(ji)(ji)器(qi)(qi)語(yu)言(yan)(yan)(yan)。直觀(guan)上(shang)看(kan),機(ji)(ji)器(qi)(qi)語(yu)言(yan)(yan)(yan)十分(fen)晦澀難懂,其中的(de)(de)(de)(de)含義往(wang)往(wang)要通過查(cha)表(biao)或者手(shou)冊才能理解(jie),使(shi)用的(de)(de)(de)(de)時(shi)候(hou)非常痛苦,尤其當你需要修改已經(jing)完成(cheng)的(de)(de)(de)(de)程序(xu)時(shi),這(zhe)種看(kan)起(qi)來無序(xu)的(de)(de)(de)(de)機(ji)(ji)器(qi)(qi)語(yu)言(yan)(yan)(yan)會讓你無從下手(shou),也很難找到程序(xu)的(de)(de)(de)(de)錯誤。而(er)且(qie),不(bu)同(tong)計(ji)(ji)算(suan)機(ji)(ji)的(de)(de)(de)(de)運行環境不(bu)同(tong),指令方(fang)式(shi)操作方(fang)式(shi)也不(bu)盡(jin)相同(tong),所(suo)以當你在(zai)這(zhe)種機(ji)(ji)器(qi)(qi)語(yu)言(yan)(yan)(yan)就(jiu)有了(le)特(te)定(ding)性(xing),只能在(zai)特(te)定(ding)的(de)(de)(de)(de)計(ji)(ji)算(suan)機(ji)(ji)上(shang)執行,而(er)一(yi)旦換(huan)了(le)機(ji)(ji)器(qi)(qi)就(jiu)需要重新編(bian)程,這(zhe)極大的(de)(de)(de)(de)降低了(le)程序(xu)的(de)(de)(de)(de)使(shi)用和(he)推廣(guang)效率。但(dan)由(you)于機(ji)(ji)器(qi)(qi)語(yu)言(yan)(yan)(yan)具(ju)有特(te)定(ding)性(xing),完美適(shi)配特(te)定(ding)型號的(de)(de)(de)(de)計(ji)(ji)算(suan)機(ji)(ji),故而(er)運行效率遠遠高(gao)過其他語(yu)言(yan)(yan)(yan)。機(ji)(ji)器(qi)(qi)語(yu)言(yan)(yan)(yan),也就(jiu)是第一(yi)代(dai)編(bian)程語(yu)言(yan)(yan)(yan)。

匯編語言

不(bu)難看出機(ji)器語(yu)(yu)(yu)言(yan)(yan)(yan)作為(wei)一(yi)種(zhong)編(bian)程(cheng)(cheng)(cheng)語(yu)(yu)(yu)言(yan)(yan)(yan),靈(ling)活性較差(cha)可閱讀性也很(hen)差(cha),為(wei)了(le)減輕(qing)機(ji)器語(yu)(yu)(yu)言(yan)(yan)(yan)帶給軟(ruan)件工程(cheng)(cheng)(cheng)師的(de)不(bu)適應,人們(men)對機(ji)器語(yu)(yu)(yu)言(yan)(yan)(yan)進行了(le)升級和(he)(he)改進:用一(yi)些(xie)容易理(li)解和(he)(he)記憶(yi)的(de)字母(mu),單詞(ci)來代替一(yi)個(ge)特(te)定的(de)指(zhi)令(ling)。通過(guo)這種(zhong)方法,人們(men)很(hen)容易去(qu)閱讀已經完(wan)成的(de)程(cheng)(cheng)(cheng)序或者理(li)解程(cheng)(cheng)(cheng)序正在執行的(de)功(gong)能,對現有(you)程(cheng)(cheng)(cheng)序的(de)bug修復以及運營維護都變得更(geng)加簡(jian)單方便,這種(zhong)語(yu)(yu)(yu)言(yan)(yan)(yan)就是我們(men)所說(shuo)的(de)匯編(bian)語(yu)(yu)(yu)言(yan)(yan)(yan),即第二代計算機(ji)語(yu)(yu)(yu)言(yan)(yan)(yan)。

比(bi)起機(ji)(ji)器(qi)語言(yan),匯(hui)編(bian)語言(yan)具(ju)有更(geng)高(gao)的(de)(de)機(ji)(ji)器(qi)相關(guan)性,更(geng)加便于記憶和書寫,但(dan)又同(tong)時保留(liu)了(le)機(ji)(ji)器(qi)語言(yan)高(gao)速(su)度(du)和高(gao)效率的(de)(de)特(te)點。匯(hui)編(bian)語言(yan)仍是面向機(ji)(ji)器(qi)的(de)(de)語言(yan),很(hen)難從其代碼(ma)上(shang)理解程序設計意圖(tu),設計出來的(de)(de)程序不易被(bei)移植,故不像其他大多數的(de)(de)高(gao)級計算機(ji)(ji)語言(yan)一樣被(bei)廣泛(fan)應用(yong)。所以在高(gao)級語言(yan)高(gao)度(du)發展的(de)(de)今天,它通(tong)常被(bei)用(yong)在底(di)層,通(tong)常是程序優化或硬件操(cao)作(zuo)的(de)(de)場合。

高級語言

在(zai)(zai)編(bian)程(cheng)語(yu)言(yan)(yan)經歷了(le)(le)機器(qi)(qi)語(yu)言(yan)(yan),匯編(bian)語(yu)言(yan)(yan)等(deng)更新(xin)之后(hou),人們(men)發現了(le)(le)限制程(cheng)序推廣的(de)(de)關鍵因(yin)素——程(cheng)序的(de)(de)可移植性。需要(yao)設計(ji)(ji)(ji)(ji)(ji)一個能夠不依賴于(yu)計(ji)(ji)(ji)(ji)(ji)算機硬件,能夠在(zai)(zai)不同(tong)機器(qi)(qi)上(shang)運行(xing)的(de)(de)程(cheng)序。這樣可以(yi)免去很多(duo)編(bian)程(cheng)的(de)(de)重(zhong)復過(guo)程(cheng),提高效(xiao)(xiao)率(lv),同(tong)時(shi)(shi)這種語(yu)言(yan)(yan)又(you)(you)要(yao)接近于(yu)數學語(yu)言(yan)(yan)或人的(de)(de)自然語(yu)言(yan)(yan)。在(zai)(zai)計(ji)(ji)(ji)(ji)(ji)算機還很稀(xi)缺的(de)(de)50年代,誕生了(le)(le)第一個高級編(bian)程(cheng)語(yu)言(yan)(yan)。當時(shi)(shi)計(ji)(ji)(ji)(ji)(ji)算機的(de)(de)造(zao)價不菲,但是每天(tian)的(de)(de)計(ji)(ji)(ji)(ji)(ji)算量又(you)(you)有限,如何有效(xiao)(xiao)的(de)(de)利用(yong)計(ji)(ji)(ji)(ji)(ji)算機有限的(de)(de)計(ji)(ji)(ji)(ji)(ji)算能力成(cheng)為(wei)了(le)(le)當時(shi)(shi)人們(men)面(mian)對(dui)(dui)的(de)(de)問(wen)題。同(tong)時(shi)(shi),因(yin)為(wei)資源的(de)(de)稀(xi)缺,計(ji)(ji)(ji)(ji)(ji)算機的(de)(de)運行(xing)效(xiao)(xiao)率(lv)也成(cheng)為(wei)了(le)(le)那個年代工程(cheng)師追尋(xun)的(de)(de)目標。為(wei)了(le)(le)更高效(xiao)(xiao)的(de)(de)使用(yong)計(ji)(ji)(ji)(ji)(ji)算機,人們(men)設計(ji)(ji)(ji)(ji)(ji)出了(le)(le)高級編(bian)程(cheng)語(yu)言(yan)(yan),來滿足人們(men)對(dui)(dui)于(yu)高效(xiao)(xiao)簡潔的(de)(de)編(bian)程(cheng)語(yu)言(yan)(yan)的(de)(de)追求(qiu)。

產品設計

語言組成

由于(yu)匯(hui)(hui)編(bian)(bian)指令(ling)(ling)(ling)系統龐(pang)大(da)(da),因(yin)(yin)而(er)需構(gou)建(jian)指令(ling)(ling)(ling)系統體系,其指令(ling)(ling)(ling)數(shu)量龐(pang)大(da)(da),格(ge)式(shi)(shi)(shi)復(fu)(fu)雜,可記憶(yi)性差等。指令(ling)(ling)(ling)中(zhong)最難的(de)是(shi)指令(ling)(ling)(ling)所支(zhi)持的(de)尋(xun)址方式(shi)(shi)(shi),其實質就是(shi)指令(ling)(ling)(ling)中(zhong)操(cao)作(zuo)數(shu)如何獲取。對于(yu)處(chu)理器而(er)言(yan),就是(shi)如何找(zhao)到(dao)他所需的(de)數(shu)據。但(dan)(dan)對于(yu)計算(suan)機底層的(de)匯(hui)(hui)編(bian)(bian)語言(yan)而(er)言(yan),這種(zhong)尋(xun)址方式(shi)(shi)(shi)將(jiang)涉及(ji)大(da)(da)量的(de)計算(suan)存(cun)儲格(ge)式(shi)(shi)(shi),與復(fu)(fu)雜的(de)存(cun)儲管理方式(shi)(shi)(shi)緊密相(xiang)關,因(yin)(yin)而(er)難以理解(jie)。最后,匯(hui)(hui)編(bian)(bian)指令(ling)(ling)(ling)還(huan)關系到(dao)如何影響標志位(wei),但(dan)(dan)處(chu)理器標志位(wei)非(fei)常復(fu)(fu)雜,因(yin)(yin)而(er)對其機制掌握就比(bi)較困難。

傳送指令

包括通用數據傳(chuan)送指令(ling)MOV、條件傳(chuan)送指令(ling)CMOVcc、堆棧(zhan)操(cao)作指令(ling)PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交換指令(ling)XCHG/XLAT/BSWAP、地址或(huo)段描(miao)述符選擇子傳(chuan)送指令(ling)LEA/LDS/LES/LFS/LGS/LSS等。

邏輯運算

這(zhe)部分指(zhi)(zhi)令(ling)用于執(zhi)行(xing)算術和邏輯(ji)運算,包括加(jia)法指(zhi)(zhi)令(ling)ADD/ADC、減(jian)法指(zhi)(zhi)令(ling)SUB/SBB、加(jia)一指(zhi)(zhi)令(ling)INC、減(jian)一指(zhi)(zhi)令(ling)DEC、比較操作指(zhi)(zhi)令(ling)CMP、乘法指(zhi)(zhi)令(ling)MUL/IMUL、除(chu)法指(zhi)(zhi)令(ling)DIV/IDIV、符號擴展指(zhi)(zhi)令(ling)CBW/CWDE/CDQE、十進制調整指(zhi)(zhi)令(ling)DAA/DAS/AAA/AAS、邏輯(ji)運算指(zhi)(zhi)令(ling)NOT/AND/OR/XOR/TEST等(deng)。

移位指令

這部分(fen)指(zhi)(zhi)令用于(yu)將寄存器或內存操作數(shu)移(yi)(yi)動指(zhi)(zhi)定(ding)的次數(shu)。包括邏(luo)輯(ji)(ji)左(zuo)移(yi)(yi)指(zhi)(zhi)令SHL、邏(luo)輯(ji)(ji)右(you)移(yi)(yi)指(zhi)(zhi)令SHR、算術左(zuo)移(yi)(yi)指(zhi)(zhi)令SAL、算術右(you)移(yi)(yi)指(zhi)(zhi)令SAR、循環左(zuo)移(yi)(yi)指(zhi)(zhi)令ROL、循環右(you)移(yi)(yi)指(zhi)(zhi)令ROR等。

位操作

這部分指(zhi)(zhi)(zhi)令(ling)包括位(wei)測試(shi)指(zhi)(zhi)(zhi)令(ling)BT、位(wei)測試(shi)并置位(wei)指(zhi)(zhi)(zhi)令(ling)BTS、位(wei)測試(shi)并復(fu)位(wei)指(zhi)(zhi)(zhi)令(ling)BTR、位(wei)測試(shi)并取(qu)反(fan)指(zhi)(zhi)(zhi)令(ling)BTC、位(wei)向前掃描(miao)指(zhi)(zhi)(zhi)令(ling)BSF、位(wei)向后掃描(miao)指(zhi)(zhi)(zhi)令(ling)BSR等。

控制轉移

這部(bu)分包(bao)括無條件轉(zhuan)移指令(ling)JMP、條件轉(zhuan)移指令(ling)JCC/JCXZ、循(xun)環指令(ling)LOOP/LOOPE/LOOPNE、過(guo)程(cheng)調用指令(ling)CALL、子過(guo)程(cheng)返(fan)回指令(ling)RET、中斷指令(ling)INTn、INT3、INTO、IRET等。

串操作

這(zhe)部分(fen)指(zhi)(zhi)令(ling)(ling)用于對數據串(chuan)進行操作,包括串(chuan)傳送指(zhi)(zhi)令(ling)(ling)MOVS、串(chuan)比較指(zhi)(zhi)令(ling)(ling)CMPS、串(chuan)掃描(miao)指(zhi)(zhi)令(ling)(ling)SCANS、串(chuan)加(jia)載指(zhi)(zhi)令(ling)(ling)LODS、串(chuan)保存指(zhi)(zhi)令(ling)(ling)STOS,這(zhe)些指(zhi)(zhi)令(ling)(ling)可以有選擇(ze)地使用REP/REPE/REPZ/REPNE和(he)REPNZ的前綴以連(lian)續操作。

輸入輸出

這部(bu)分指(zhi)令(ling)(ling)用于同外圍(wei)設備交(jiao)換(huan)數據,包(bao)括端口(kou)輸入(ru)指(zhi)令(ling)(ling)IN/INS、端口(kou)輸出指(zhi)令(ling)(ling)OUT/OUTS。

特色功能

語言特點

匯編語(yu)言(yan)(yan)是計算(suan)機(ji)提供給用戶(hu)的(de)(de)最(zui)快最(zui)有效的(de)(de)語(yu)言(yan)(yan),也是能(neng)夠(gou)利用計算(suan)機(ji)的(de)(de)所有硬(ying)件特性并能(neng)夠(gou)直接控制硬(ying)件的(de)(de)唯(wei)一語(yu)言(yan)(yan)。但是由于編寫(xie)和調(diao)試匯編語(yu)言(yan)(yan)程序要比(bi)高級(ji)語(yu)言(yan)(yan)復雜,因此目前其應用不如高級(ji)語(yu)言(yan)(yan)廣泛。

匯編語(yu)言(yan)(yan)比(bi)機(ji)器(qi)語(yu)言(yan)(yan)的可讀(du)性(xing)要(yao)好,但跟高級語(yu)言(yan)(yan)比(bi)較(jiao)而言(yan)(yan),可讀(du)性(xing)還是(shi)(shi)較(jiao)差。不(bu)過采用(yong)它(ta)編寫(xie)的程序具有(you)存儲空間(jian)占(zhan)用(yong)少(shao)、執(zhi)行(xing)速度快的特點(dian),這些是(shi)(shi)高級語(yu)言(yan)(yan)所(suo)無法取代的。在實際應用(yong)中(zhong),是(shi)(shi)否(fou)使用(yong)匯編語(yu)言(yan)(yan),取決于具體應用(yong)要(yao)求、開發時間(jian)和(he)質量等方面(mian)作權衡。

優點

匯(hui)編語(yu)言(yan)作(zuo)為機器語(yu)言(yan)之(zhi)上的第二代編程語(yu)言(yan),它也有很多優點:

可(ke)以(yi)輕松的(de)讀(du)取(qu)存儲器狀態以(yi)及硬件I/O接口情況

編寫的(de)(de)代(dai)碼因(yin)為少了很多編譯的(de)(de)環節,可(ke)以(yi)能夠準確的(de)(de)被執(zhi)行

作(zuo)為一(yi)種(zhong)低(di)級(ji)語(yu)言,可擴(kuo)展性很高(gao)

缺點

因為代(dai)碼(ma)非常單調,特殊(shu)指令字符(fu)很少(shao),所以造(zao)成(cheng)了代(dai)碼(ma)的冗長以及編(bian)寫的困難

因為匯編仍(reng)然需要自己去(qu)調(diao)用存儲(chu)器(qi)存儲(chu)數據,很容(rong)易(yi)出現BUG,而(er)且調(diao)試(shi)起來也不容(rong)易(yi)

就算完成了一個程序,后(hou)期維(wei)護(hu)時(shi)候也需要(yao)耗費大量(liang)的時(shi)間(jian)。

因為機器的特殊性造成了代碼兼容性差的缺陷。

對比高級語言

區別

匯(hui)編語言的特點是容易被(bei)計算(suan)機識(shi)別和(he)執行(xing),使用它進行(xing)編程(cheng)可以減少占用空間、提高運行(xing)速度,并能直接對硬件實施控制(zhi)。在(zai)(zai)需要實時(shi)控制(zhi)的時(shi)候(hou),有著不可替代的重要地位,但(dan)匯(hui)編語言在(zai)(zai)編程(cheng)和(he)理解時(shi)要復雜、困難一些(xie),尤(you)其是在(zai)(zai)進行(xing)數據處理或(huo)是邏輯運算(suan)時(shi)更加(jia)凸顯出其劣勢(shi)。

高(gao)級語(yu)言是(shi)面向(xiang)使(shi)用(yong)(yong)(yong)者的(de)語(yu)言,能更準確地被程序(xu)員所理解,它(ta)的(de)表(biao)達能力強,功(gong)能多,編(bian)程效(xiao)率高(gao),上(shang)手速度快(kuai),自動化程度高(gao),因而更受(shou)歡迎。在大部分(fen)軟件開發中,使(shi)用(yong)(yong)(yong)者都(dou)采用(yong)(yong)(yong)高(gao)級語(yu)言編(bian)程,以提(ti)高(gao)編(bian)程效(xiao)率。但在要求存儲(chu)空間小,執行(xing)速度快(kuai),需(xu)直接對(dui)硬件進行(xing)控(kong)制(zhi)的(de)場合,則應用(yong)(yong)(yong)匯編(bian)語(yu)言編(bian)程,以達到(dao)優(you)化程序(xu)速度的(de)目的(de)。

聯系

這(zhe)(zhe)樣兩種看似差別很大(da)的(de)(de)(de)(de)語言,它們之間又(you)有著(zhu)緊密的(de)(de)(de)(de)聯系(xi)。在(zai)(zai)(zai)一些程(cheng)(cheng)序(xu)設計(ji)(ji)當(dang)中,如果把兩者結合(he)起(qi)來使(shi)用,將(jiang)兩種語言的(de)(de)(de)(de)優(you)勢(shi)同時(shi)發揮出來,則(ze)可(ke)(ke)(ke)以(yi)(yi)(yi)(yi)解(jie)決(jue)很多特性難題。在(zai)(zai)(zai)許多程(cheng)(cheng)序(xu)的(de)(de)(de)(de)設計(ji)(ji)當(dang)中,高(gao)級(ji)(ji)語言和(he)(he)匯編(bian)語言可(ke)(ke)(ke)以(yi)(yi)(yi)(yi)相(xiang)互(hu)交叉調(diao)用,進行(xing)參數傳遞(di),共享數據(ju)信息,這(zhe)(zhe)便是所謂的(de)(de)(de)(de)混(hun)合(he)編(bian)程(cheng)(cheng)。程(cheng)(cheng)序(xu)員往往在(zai)(zai)(zai)高(gao)級(ji)(ji)語言程(cheng)(cheng)序(xu)中直接(jie)嵌(qian)入(ru)匯編(bian)語句,以(yi)(yi)(yi)(yi)實現(xian)對(dui)硬(ying)件直接(jie)進行(xing)控制的(de)(de)(de)(de)功能,這(zhe)(zhe)是混(hun)合(he)編(bian)程(cheng)(cheng)中常見的(de)(de)(de)(de)做法。也可(ke)(ke)(ke)以(yi)(yi)(yi)(yi)在(zai)(zai)(zai)高(gao)級(ji)(ji)語言程(cheng)(cheng)序(xu)中使(shi)用匯編(bian)語言中定義(yi)的(de)(de)(de)(de)變(bian)量(liang)和(he)(he)常量(liang),或使(shi)用內部函(han)數對(dui)匯編(bian)語句進行(xing)調(diao)用。簡而(er)言之,這(zhe)(zhe)類(lei)混(hun)合(he)編(bian)程(cheng)(cheng)的(de)(de)(de)(de)方(fang)法可(ke)(ke)(ke)以(yi)(yi)(yi)(yi)讓高(gao)級(ji)(ji)語言與匯編(bian)語言互(hu)相(xiang)取長補短,各自發揮各自優(you)勢(shi),同時(shi)減少各自缺點所帶來的(de)(de)(de)(de)不(bu)便,善用這(zhe)(zhe)個方(fang)法可(ke)(ke)(ke)以(yi)(yi)(yi)(yi)使(shi)開發和(he)(he)編(bian)程(cheng)(cheng)工(gong)作達(da)到事半功倍的(de)(de)(de)(de)效果。

相關技術

匯編器

典型的現代(dai)匯編器(qi)(Assembler)建造(zao)目標代(dai)碼(ma),由解(jie)(jie)譯組語指(zhi)令(ling)集的易(yi)記碼(ma)(Mnemonics)到操作碼(ma)(OpCode),并解(jie)(jie)析符號名稱(cheng)(Symbolic Names)成(cheng)為存儲器(qi)地址以及其它(ta)的實體。使用符號參考是匯編器(qi)的一(yi)(yi)個重要特征(zheng),它(ta)可(ke)以節(jie)省修改(gai)程序后人工轉址的乏(fa)味耗時計(ji)算。基(ji)本就是把機(ji)器(qi)碼(ma)變(bian)成(cheng)一(yi)(yi)些(xie)字母而已,編譯的時候再(zai)把輸(shu)入的指(zhi)令(ling)字母替換成(cheng)為晦澀難懂(dong)機(ji)器(qi)碼(ma)。

編譯環境

用匯編(bian)語言(yan)等非機(ji)器(qi)(qi)語言(yan)書(shu)寫好的符(fu)號程(cheng)(cheng)序(xu)稱為源程(cheng)(cheng)序(xu),匯編(bian)語言(yan)編(bian)譯器(qi)(qi)的作(zuo)用是(shi)(shi)將源程(cheng)(cheng)序(xu)翻譯成(cheng)目標(biao)程(cheng)(cheng)序(xu)。目標(biao)程(cheng)(cheng)序(xu)是(shi)(shi)機(ji)器(qi)(qi)語言(yan)程(cheng)(cheng)序(xu),當它被安置(zhi)(zhi)在內存的預定(ding)位(wei)置(zhi)(zhi)上后,就能(neng)被計算(suan)機(ji)的CPU處理(li)和(he)執行。

匯(hui)編(bian)(bian)的調試(shi)環(huan)境總的來(lai)說比較少(shao),也很少(shao)有非(fei)(fei)常(chang)好的編(bian)(bian)譯(yi)器(qi)。編(bian)(bian)譯(yi)器(qi)的選擇依(yi)賴于目(mu)標處理器(qi)的類型和具體(ti)的系統平(ping)臺。一般來(lai)說,功能良好的編(bian)(bian)譯(yi)器(qi)用起來(lai)應(ying)當非(fei)(fei)常(chang)方便,比如(ru),應(ying)當可以自動整理格(ge)式、語法高亮(liang)顯示,集編(bian)(bian)譯(yi)、鏈(lian)接和調試(shi)為一體(ti),方便實(shi)用。

對于廣泛使用的(de)個人計(ji)算機(ji)來說,可(ke)以自由選擇的(de)匯編(bian)(bian)(bian)語言編(bian)(bian)(bian)譯(yi)器有MASM、NASM、TASM、GAS、FASM、RADASM等,但大都不具備(bei)調試(shi)功(gong)能。如(ru)果是(shi)為(wei)了學習匯編(bian)(bian)(bian)語言,輕松匯編(bian)(bian)(bian)因為(wei)擁(yong)有一(yi)個完(wan)善的(de)集成環(huan)境,是(shi)一(yi)款非常(chang)適合初(chu)學者(zhe)的(de)匯編(bian)(bian)(bian)編(bian)(bian)(bian)譯(yi)器。

品牌介紹

發展前景

隨著現代軟(ruan)件(jian)系統越來越龐(pang)大復(fu)雜,大量經過了封裝(zhuang)的(de)(de)(de)(de)(de)(de)高級語(yu)言(yan)如C/C++,Pascal/Object Pascal也應(ying)運而生。這些新的(de)(de)(de)(de)(de)(de)語(yu)言(yan)使得(de)(de)(de)程(cheng)序(xu)員(yuan)(yuan)在開發(fa)(fa)過程(cheng)中(zhong)能夠更(geng)簡單,更(geng)有效(xiao)率,使軟(ruan)件(jian)開發(fa)(fa)人員(yuan)(yuan)得(de)(de)(de)以(yi)應(ying)付快速的(de)(de)(de)(de)(de)(de)軟(ruan)件(jian)開發(fa)(fa)的(de)(de)(de)(de)(de)(de)要(yao)求。而匯(hui)編(bian)語(yu)言(yan)由于(yu)其復(fu)雜性使得(de)(de)(de)其適用(yong)領域逐步(bu)減小(xiao)。但這并不意(yi)味(wei)著匯(hui)編(bian)已(yi)無用(yong)武之地。由于(yu)匯(hui)編(bian)更(geng)接近機器語(yu)言(yan),能夠直(zhi)接對硬件(jian)進行(xing)(xing)操作,生成的(de)(de)(de)(de)(de)(de)程(cheng)序(xu)與其他的(de)(de)(de)(de)(de)(de)語(yu)言(yan)相比具有更(geng)高的(de)(de)(de)(de)(de)(de)運行(xing)(xing)速度,占用(yong)更(geng)小(xiao)的(de)(de)(de)(de)(de)(de)內存,因此在一些對于(yu)時(shi)效(xiao)性要(yao)求很高的(de)(de)(de)(de)(de)(de)程(cheng)序(xu)、許多大型程(cheng)序(xu)的(de)(de)(de)(de)(de)(de)核心模塊以(yi)及工業控(kong)制方面大量應(ying)用(yong)。

雖(sui)然隨著半導體技術、編(bian)程(cheng)(cheng)技術的(de)不斷發展,在實際(ji)工程(cheng)(cheng)應用中確實很少看到匯(hui)(hui)編(bian)語(yu)(yu)言的(de)身(shen)影,但這并不能說明(ming)匯(hui)(hui)編(bian)語(yu)(yu)言沒用,已被其(qi)他(ta)高級語(yu)(yu)言所取代。嵌入式系統的(de)底(di)層(ceng)驅動、計算機的(de)BIOS還是(shi)(shi)要用匯(hui)(hui)編(bian)語(yu)(yu)言實現(xian)。匯(hui)(hui)編(bian)語(yu)(yu)言是(shi)(shi)培(pei)養學生(sheng)理解硬件資源的(de)語(yu)(yu)言,是(shi)(shi)學習和理解其(qi)他(ta)高級程(cheng)(cheng)序設(she)計語(yu)(yu)言的(de)基礎,是(shi)(shi)計算機組成原理、接口與通信技術、計算機控制(zhi)技術和數據(ju)采集(ji)等許多專業(ye)課(ke)的(de)前導課(ke)程(cheng)(cheng),是(shi)(shi)必要的(de)基礎知識,起(qi)著承上啟下的(de)作用。

本百科詞(ci)條由網站注冊用戶【 知識小玲 】編輯上傳(chuan)提供,當前頁面所(suo)展示的(de)詞(ci)條介紹(shao)涉及宣傳(chuan)內容屬于注(zhu)冊用(yong)戶個人編輯行為,網站(zhan)不(bu)完全保證內容信息的(de)準確性(xing)、真實(shi)性(xing),也不(bu)代表本站(zhan)立場(chang)。
詞條所在榜單
您還未登錄,依《網絡安全法》相關要求,請您登錄賬戶后再提交發布信息。點擊登錄>>如您還未注冊,可點擊注冊>>,感謝您的理解及支持!
發表評論
最新評論
暫無評論
相關知識文章
十大熱門編程語言排名 編程語言排行榜2023 編程語言哪個前景好
全世界有數種編程語言,但最常用的還是那幾種。如今隨著時代的發展,一些編程語言的受歡迎程度也發生著微妙的變化。本文中maiGoo小編就帶大家看...
MAIGOO原(yuan)創 編程語言 少兒編程 編程
1.3萬+
十大免費視頻網站 在線視頻網站盤點 免費看視頻網站有哪些
中國互聯網絡信息中心發布的《中國互聯網絡發展狀況統計報告》顯示,我國網絡視頻用戶已超過8.5億,其中短視頻用戶規模超過7.73億。除了抖音、...
MAIGOO原創 在線視頻 互聯網 短視頻
1043萬+
十大免費b2b網站 b2b電子商務平臺排名 b2b免費商務平臺有哪些
B2B是電子商務最成熟的商業模式之一。Maigoo網編輯從百度發布的《B2B行業洞察報告》獲悉,機械工業、建材家裝、水暖電工等等,是需求量最...
MAIGOO原創 電子商務 B2B網站 商務服務
42萬+
十大二手書交易網站 舊書網站推薦 賣二手書去哪個網站好
伴隨90后、00后新消費主力人群的形成,各大二手交易平臺逐漸年輕化,出售閑置物品也更加多元,除了交易數量較多的汽車、數碼、服裝等商品外,圖書...
MAIGOO原創 二手交易 互聯網 網上書店
26萬+
十大游戲交易平臺排行榜 正規游戲賬號交易平臺 熱門游戲交易平臺
游戲交易平臺有官方的,也有第三方的,無論選擇哪一種,“安全交易”都是至關重要的,下面CNPP小編帶大家了解下游戲交易平臺有哪些、游戲交易平臺...
MAIGOO原創 手游 游戲平臺 PC網游
12萬+
國內十大電影下載網站 電影下載網站哪個最好 電影下載網站排行
隨著國內版權意識的蘇醒,以及各種“嚴打”,各個電影下載網站岌岌可危,那至今存活的電影下載網站哪個最好呢?Maigoo小編就為大家帶來了國內十...
MAIGOO原創 電影網站 在線視頻 電影
47萬+
十大日本動漫網站 動漫追番網站盤點 看日本動漫什么網站好
追番人數、評分和播放量一直是評價一部動漫是否優秀的三個重要指標。在大批動漫網站平臺中,你常用哪個網站來看優質日漫?最適合追番的網站有哪些?本...
MAIGOO原(yuan)創(chuang) 動漫 動畫 動漫網
122萬+
十大歐美網站 國外網站排名 知名海外網站有哪些
互聯網起源于20世紀60年代末的美國阿帕網,發展至21世紀,它已與各行各業息息相關,影響著全世界的發展和社會格局。Maigoo小編在本文中盤...
MAIGOO原創 互聯網 歐美地區 在線視頻
101萬+
十大炒股軟件 炒股軟件排行榜前十名 股票軟件哪個最好用
炒股軟件哪個最好?市面上的股票軟件眾多,而對于分析行情走勢,了解市場的動態,選擇一款好的炒股軟件很重要,那么最好的股票app有哪些?下面Ma...
MAIGOO原(yuan)創 股票 手機app 軟件
46萬+
十大手游交易平臺排行榜 靠譜的手游交易平臺 正規手游交易平臺推薦
近些年手機游戲市場規模逐年增長,游戲裝備交易、賬號交易,已是屢見不鮮。那么手游交易平臺有哪些呢,手游交易平臺哪個好?下面maigoo小編就和...
MAIGOO原(yuan)創 手游 游戲平臺 平臺
11萬+
十大可以賺錢的軟件 十大賺錢軟件排名 有什么能賺錢的軟件
你在手機上消磨時間,而有人已經在手機上賺到了生活費。下面就跟隨Maigoo小編來看看掙錢的軟件有哪些、適合學生賺錢的軟件有哪幾個。熱門且合法...
MAIGOO原創 工具軟件 賺錢旺財 軟件
55萬+
十大電影網站排名 免費看電影網站推薦 在線電影網站有哪些
近年,我國網絡視頻用戶量穩步增長,已超出8.5億,占網民整體的94.1%。在線電影網站行業中,愛奇藝、騰訊視頻、優酷三大電影網站市場份額最高...
MAIGOO原創 電影網站 在線視頻 互聯網
327萬+
十大最好玩小程序游戲 微信小程序游戲排行 最火微信小游戲推薦
微信小程序游戲是時下最主流的休閑方式之一。要說最火小程序游戲,如羊了個羊、肥鵝健身房、動物餐廳、成語小秀才、旅行串串、騰訊桌球等,均名列其中...
MAIGOO原創 手游 手機小游戲 最好玩
25萬+
十大圖片網站排行榜 圖片素材網站推薦 免費高清圖片網站有哪些
圖片素材通常沒有突出的主題,但經過設計師的加工后,就成為了一件完整的作品。一個好的圖片素材能讓設計作品的完工起到事半功倍的效果。本文中mai...
MAIGOO原(yuan)創 辦公軟件 互聯網 在線設計
13萬+
最受男士喜愛的十大網站 男人上網常用的網站
全世界的男人喜歡什么網站?這其實沒有標準答案,畢竟多數人的愛好,以及對事物的關注點都是不同的。不過話又說回來了,男人之間更容易相互了解,也存...
MAIGOO原(yuan)創 互聯網 男性/男士 科技/發明
63萬+
十大錄屏軟件 錄屏軟件哪個好 屏幕錄制軟件哪個好用
隨著電腦錄屏需求的急劇增長,win10系統的基本普及,電腦基于xbox自帶的錄屏功能,解決了越來越多人的需求;然而除了這項自帶應用外,第三方...
MAIGOO原創 辦公軟件 錄屏軟件 工具軟件
18萬+
十大最好用的輸入法盤點 最受歡迎的輸入法排行 十大輸入法品牌
輸入法是指為將各種符號輸入計算機或其他設備(如手機)而采用的編碼方法,同時是書寫工具克服墨水限制的最終結果,是一種擁有無限墨水的書寫工具,是...
十大編程軟件排行榜 編程開發工具大全 c語言編程軟件有哪些
世界上主流的編程語言有C、Java、Python、C++、C#、Visual Basic、PHP等,針對這些編程語言,又有相對應的Visua...
MAIGOO原創 辦公軟件 工具軟件 軟件
18萬+
十大天氣預報APP軟件 好用的天氣app排行 天氣預報軟件哪個最準確
比達咨詢(BDR)研究數據顯示,我國移動天氣軟件以2009-2013年為萌芽期,各類天氣預報app相繼衍生,到2016年得益于大數據、物聯網...
MAIGOO原(yuan)創 在線音樂 手機app 工具軟件
22萬+
十大壁紙軟件排名 電腦壁紙軟件哪個好用 動態壁紙軟件有哪些
無論是早年的Win7,還是逐漸普及開來的Win10,許多用戶仍然對原生桌面的美觀性有著一成不變的追求,進而使用起了第三方美化工具,如各類動態...
MAIGOO原創(chuang) 壁紙軟件 工具軟件 軟件
32萬+