1樓:承冷菱
組合語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。在組合語言中,用助記符代替機器指令的操作碼,用位址符號或標號代替指令或運算元的位址。在不同的裝置中,組合語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。
特定的組合語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。
組合語言, 即第二代計算機語言,用一些容易理解和記憶的字母,單詞來代替乙個特定的指令,比如:用「add」代表數字邏輯上的加減,「 mov」代表資料傳遞等等,通過這種方法,人們很容易去閱讀已經完成的程式或者理解程式正在執行的功能,對現有程式的bug修復以及運營維護都變得更加簡單方便。當計算機的硬體不認識字母符號,這時候就需要乙個專門的程式把這些字元變成計算機能夠識別的二進位制數。
因為組合語言只是將機器語言做了簡單編譯,所以並沒有根本上解決機器語言的特定性,所以組合語言和機器自身的程式設計環境息息相關,推廣和移植很難,但是還是保持了機器語言優秀的執行效率,因為他的可閱讀性和簡便性,組合語言到現在依然是常用的程式語言之一。[2] 組合語言不像其他大多數的程式語言一樣被廣泛用於程式設計。在今天的實際應用中,它通常被應用在底層,硬體操作和高要求的程式優化的場合。
驅動程式、嵌入式作業系統和實時執行程式都需要組合語言。
機器語言作為一種程式語言, 靈活性較差可閱讀性也很差,為了減輕機器語言帶給軟體工程師的不適應,人們對機器語言進行了公升級和改進:用一些容易理解和記憶的字母,單詞來代替乙個特定的指令。通過這種方法,人們很容易去閱讀 已經完成的程式或者理解程式正在執行的功能,對現有程式的bug修復以及運營維護都變得更加簡單方便,這種語言就是我們所說的組合語言, 即第二代計算機語言。
[2]比起機器語言,組合語言具有更高的機器相關性,更加便於記憶和書寫,但又同時保留了機器語言高速度和高效率的特點。組合語言仍是面向機器的語言,很難從其**上理解程式設計意圖,設計出來的程式不易被移植,故不像其他大多數的高階計算機語言一樣被廣泛應用。所以在高階語言高度發展的今天,它通常被用在底層,通常是程式優化或硬體操作的場合。
希望我能幫助你解疑釋惑。
2樓:沙里波特
寫的很清楚啊!
不就是:求兩個 20b 數的和嗎?
請問組合語言 這道題是什麼思路?al bl ah bh 這是什麼意思? 還有怎麼計算啊?
3樓:匿名使用者
這幾條彙編指令其實並沒有完成任何結構性的功能,最多只是給學習者演示一下cpu暫存器在彙編指令的執行過程中如何變化,如何運算而已,故談不上什麼思路。
al:ax暫存器(16位暫存器)的低位位元組;
bl:bx暫存器(16位暫存器)的低位位元組;
ah:ax暫存器(16位暫存器)的高位位元組;
bh:bx暫存器(16位暫存器)的高位位元組;
示例中的彙編語句是以8位位元組的形式訪問暫存器的:
add al,bl ;ax低位元組+bx低位元組 結果送al
add ah,bl ;ax高位元組+bx低位元組 結果送ah
add bh,al ;bx高位元組+ax低位元組 結果送bh
mov ah,0 ;將0賦值給ah
add al,85h ;ax低位元組+85h 結果送al
add al,93h ;ax低位元組+93h 結果送al
結果ax=0158h
4樓:匿名使用者
很少有彙編指令沒有完成任何建構函式,同比增長只是為了演示到學習者的cpu暫存器的彙編指令在執行過程中,如何改變,如何計算有什麼想法,到目前為止。
al:ax暫存器的低位元組(16位暫存器);
bl:低位元組的的bx暫存器(16個暫存器);
ah:ax暫存器(16位暫存器)位元組;
的bh:高位元組的的bx暫存器(16個暫存器),例子彙編語句的基礎上的8個位元組的形式訪問暫存器:
新增al bl斧頭低位元組+ bx低位元組的傳送人加啊,bl斧頭高位元組+ bx低位元組送啊
人;新增bh,bx高位元組+ ax的低位元組傳送bhmov ah,0 0分配給啊
新增al,85h;
新增人。斧頭+85 h的低位元組,傳送人,93h;斧頭低字第93?傳送人
結果ax = 0158h
5樓:月晞
al屬於低位累加器,
ah屬於高位累加器,bl屬於低位基址暫存器,bh屬於高位基址暫存器,h表示十六進製制數
mov ax,001ah /將001a存入ax中,此時al為1a,ah為00
mov bx,0026h /將0026存入bx中,此時bl為26,bh為00
add al,bl /求al+bl,結果存入al中,al=40
add,ah,bl /求ah+bl,結果存入ah中,ah=26
add bh,al /求bh+al,結果存入bh中,bh=1a
mov ah,0 /將ah清0
add al,85h /求al+85,結果存入al中,al=c5
add al,93h /求al+93,結果存入al中,al=58
6樓:匿名使用者
沒什麼意義,也許是計算序列號,或者加密的什麼演算法指令吧
組合語言的DW是什麼意思,組合語言中的DW怎麼用,能舉個例子說明一下嗎
dw 是定義2位元組空間的意思。dw屬於彙編的一個偽指令,dw定義字型別變數,一個字資料佔2個位元組單元,讀完一個,偏移量加2。db定義位元組型別變數,一個位元組資料佔1個位元組單元,讀完一個,偏移量加1。dd定義雙字型別變數,一個雙字資料佔4個位元組單元,讀完一個,偏移量加4。彙編指令既不控制機器...
組合語言中db是什麼意思,組合語言中DB是什麼意思?
風翼殘念 db作為組合語言中的偽操作命令,它用來定義運算元佔用的位元組數。表示式中可包含符號 字串 或表示式等項,各個項之間用逗號隔開,字串應用引號括起來。括號內的標號是可選項,如果使用了標號。db的作用 在這裡b是byte的縮寫,即位元組,所以,該偽操作所定義的每個運算元佔有1個位元組 8位 如 ...
彙編中是什麼意思,組合語言中 是什麼意思
飛鷹 是組合語言中的一個預定義符號,等價於當前正彙編到的段的當前偏移值。組合語言 assembly language 是一種用於電子計算機 微處理器 微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。在組合語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或運算元的地址。在不同的裝...