關於組合語言,關於組合語言中的LOOP指令

2022-12-31 09:55:43 字數 3589 閱讀 6382

1樓:妙妙

簡單的說就是:

如果時間充裕-------------------先學彙編,因為彙編會極大的幫助你認識晶片的內部,具體在執行的時候它是怎麼工作的。

如果時間不充裕-----------------先學c,因為c編寫語言只需要極少的對晶片的瞭解即可。

比較: 組合語言-----------程式**效率最高。通俗的說,寫出來的東西佔空間小。缺點:開發週期較長

c語言------------程式**效率比較高。通俗的說,佔的地方也不大,但是c的最大好處就是,n多的現成的程式包,不用你來編寫,可以直接呼叫。開發週期比較短。

2樓:學

我們學彙編的時候,之前只學過c然後學了計算機基本原理這些東西也對彙編有用,不用先學才c++,vb之類的,也能學好

3樓:匿名使用者

其實c和彙編解決問題思路都差不多,不過如果要進一步瞭解微控制器還是是學彙編有利。

4樓:笪潤達安陽

多寫是唯一的辦法

熟能生巧

5樓:芮多魏奇正

按照英語的意思記。如mov=move

jmp=jump

add=addition

6樓:匿名使用者

其實我感覺這是個方向問題,看你將來從事什麼工作,技術本身沒有好壞之分,只有學的深淺的區別,你上面列的很多人基本上都會,都能做東西。

其實各種語言都有自己適用的環境,某些時候你可能需要用c來做,某些時候c已經搞不定一些事情了,那就上彙編唄,如果你從事底層開發,多數時候會碰到c和彙編混用的情況,這就需要你都懂才行,所以啊,別猶豫了,既然是0基礎,一張白紙,那就justdoit吧,反正早晚都要會,那就先通吃,不知者不懼,呵呵,混個臉熟再說 。。。

可以去看看這樣的情形,我這裡正巧有些**可以參考:

7樓:匿名使用者

學組合語言,不如忘了高階語言,有的人走這條路正好,我就是。

從微機原理,指令結構,儲存器,作業系統,基礎打好了,奮戰半年就可以組合語言了,不需要有高階語言的影子,反而不好。

關於組合語言中的loop指令

8樓:匿名使用者

這個程式迴圈一次,是由cx存放的。

cx中存放的是迴圈的次數

程式設計計算2^12:

assume cs:code

code segment

mov ax,2

mov cx,11

s:add ax,ax

loop s

mov ax,4c00h

int 21h

code ends

end執行loop s時,首先要將(cx)減1,若(cx)不為0,則前往s處執行add ax,ax。

cpu執行loop指令的時候,要進行兩步操作:

1 (cx)=(cx)-1

2 判斷cx中的值,不為零則轉移到標號處執行程式,如果為零,則向下執行

例1 計算2^2 結果放在ax

code segment

assume cs:code

mov ax,2

add ax,ax

mov ax,4c00h

int 21h

code ends

end例2 計算2^3 結果放在ax

code segment

assume cs:code

mov ax,2

add ax,ax

add ax,ax

mov ax,4c00h

int 21h

code endsend

9樓:兔丞飛

intel80x86系列組合語言中的loop指令,是迴圈指令,迴圈次數由計數暫存器cx指定。是否執行迴圈體的判斷指令在迴圈體之後,至少執行1次迴圈體,即至少迴圈1次。

執行loop指令時,cpu自動將cx的值減1,若cx=0,則結束迴圈;否則,重複執行迴圈體。

本題是個特例,雖然計數暫存器的初值為0,但當執行完1次迴圈體,遇到loop指令時,cx=0-1=65535。雖然產生了借位,但cx不等於0,所以,要繼續執行迴圈體。

mov cx,0

l5:……

loop l5

共執行迴圈體65536次。

擴充套件資料

程式設計計算2^12:

assume cs:code

code segment

mov ax,2

mov cx,11

s:add ax,ax

loop s

mov ax,4c00h

int 21h

code ends

end執行loop s時,首先要將(cx)減1,若(cx)不為0,則前往s處執行add ax,ax

10樓:艾茵施坦大話區塊鏈

組合語言loop指令

11樓:匿名使用者

是迴圈指令,迴圈次數由計數暫存器cx指定。是否執行迴圈體的判斷指令在迴圈體之後,所以,至少執行1次迴圈體,即至少迴圈1次。執行loop指令時,cpu自動將cx的值減1

直到cx為0 ,迴圈結束

關於組合語言,下列說法錯誤的是( )。

12樓:匿名使用者

d 是錯誤的,a、b、c 三種說法均是正確的。

關於組合語言。

13樓:

因為計算機最底層的語言就是機器語言,組合語言是機器語言的發展,所有的高階語言最終都要編譯為2進位制機器**,所以你學計算機原理和介面一定要學習彙編

14樓:做而論道

大學裡面學的微控制器,一般是mcs-51系列,它的組合語言,和8086系列的組合語言,很多都是雷同的。

但是,它們的硬體是完全不同的,所以,指令執行的效果,就是不同的。

大學裡面的微控制器實驗、微機原理的實驗,都是使用教學用的實驗箱。

在實驗箱裡面使用的組合語言,是和「真正的彙編」稍有區別。

離開了實驗箱,它們那些實驗軟體,都是不可用的。

關於對組合語言的認識

15樓:

沒有捷徑,多看多寫,我曾自學完組合語言,使用 王爽的那本書,然後是 錢曉婕的書,要想學好就多看書,多聯絡。知道看花容易繡花難嗎??只看不動手永遠學不好

彙編,確實很重要,如果懂的彙編,那些c語言的祕密也會暴光的。介紹本書給你吧,王爽的《組合語言》,初學者很合適,象你那樣懂點c語言就更好辦拉。我連高中都沒讀過,三角函式都不知道是什麼東東,照樣能把c語言和組合語言學會

程式設計的目的在於使用程式

所以,實踐第一,如果老看書不上機,你很難發現問題,總覺的自己想的就是對的,況且上機也能幫你記憶指令,自己上機編一次頂拿著書看10次。

還有,程式出錯了,如果不急著著用,先不要問別人,一定要自己先調調看,這個至關重要。自己調好的肯定下次準不犯這個錯,如果是問的別人就大不一樣。

組合語言中csdsss的區別,組合語言中 cs ds ss的區別是什麼?

cs ds ss 分別是 段暫存器 資料段暫存器 棧段暫存器。簡單的8086彙編程式可以直接使用系統棧 或者預設的棧 所以 可以不用 ss 暫存器。即簡單的程式通常包括一個 段和一個資料段。資料通常放在資料段中,一般只需在程式的開始對資料段暫存器ds賦值 mov ax,seg data mov ds...

組合語言程序,組合語言程式

變數名 str1 str1 str1 str2 str2 str2 numb numb 偏移地址 0000h 0001h 0002h 0003h 0004h 0005h 0006h 0007h 單後設資料 00h 01h 02h 48h 49h 4ah 00h 00h 變數名 numb numw n...

組合語言中ah和AH代表什麼,請問組合語言中001AH加0026H是多少怎麼算的A和H分別代表什麼呀還有CH什麼意思

ah和ah是一個意思,只是大小寫區分 意思是ax 16位 暫存器的高八位,低八位是al暫存器 al邏輯運算 這部分指令用於執行算術和邏輯運算,包括加法指令add adc 減法指令sub sbb 加一指令inc 減一指令dec 比較操作指令cmp 乘法指令mul imul 除法指令div idiv 符...