微機原理組合語言IDIV指令,微機原理與組合語言中的指令JMP CALL的區別

2022-11-19 03:56:24 字數 4273 閱讀 9768

1樓:匿名使用者

idiv:有符號數除法指令(signedinteger divide instruction);

指令的格式:idiv  reg/mem;

受影響的標誌位:af、cf、of、pf、sf和zf;

指令的功能是用顯式運算元去除隱含運算元(都作為有符號數),所得商和餘數的對應關係見下圖;

微機原理與組合語言中的指令jmp、call的區別 50

2樓:春暉啊

jmp無條件跳轉,無返回,沒有壓棧(起到保護資料的作用)。call通過入口地址跳轉有返回,返回地址壓入堆疊。

3樓:匿名使用者

jmg是無返回的,想回來還要jmp才行

call是呼叫過程或函式,以ret,retf之類的返回到呼叫位置或下一句

4樓:匿名使用者

組合語言中

自,jmp是無條件bai轉移指令,call是子程式呼叫du指令zhi。

指令jmp、call的區別在於,jmp指令控制dao程式直接跳轉到目標地址執行程式,程式總是順序執行,指令本身無堆疊操作過程。call指令跳轉到指定目標地址執行子程式,執行完子程式後,會返回call指令的下一條指令處執行程式,執行call指令有堆疊操作過程。

舉例如下:

jmp near next;跳轉到next執行程式

......

next: ;目標地址,程式將從這裡向下執行

......

call next;呼叫從地址next開始的子程式

nop ;子程式結束後返回到這裡,然後向下繼續執行程式

......

next: ;子程式目標地址,程式將從這裡向下執行

ret ;子程式返回指令,子程式執行到此結束,返回call指令的下一條指令處

5樓:匿名使用者

(1)jmp l1

l1:表示的是l1-(當前指標+1)

(2)call l2

l2 ;表示的是l1-(當前指標+1)

將程式壓棧入記憶體

微機原理與組合語言的關係?

6樓:由曉莉

組合語言是除機器語言速度最快的一種。

每種處理器,或者不同廠家微控制器組合語言不同但總體的框架是一樣的。。

中斷,定時,基本的格式都差不多

學一種就可以通幾種。。

微機原理 組合語言指令 求大神給個詳細解釋

7樓:

如下討論基於閣下已具備基礎知識的假設:

description

replaces the value of operand (the destination operand) with its two's complement. (this operation is equivalent to

subtracting the operand from 0.) the destination operand is located in a general-purpose register or a memory

location.

以上描述摘自《intel® 64 and ia-32 architectures software developer』s manual》中關於neg指令的描述,注意,第二組括號內的內容!該操作等同於0減運算元。其實,標誌位的設定亦同減法。

所以,ax = 0100h,cf = 1第二題

微機原理或組合語言

8樓:匿名使用者

type指令,是取變數型別 byte-1, word-2, dword-4

res的定義是db,為byte,所以是1, table的定義是dw - word,所以是2, dword (dd),則為4

length指令,是取變數定義中dup的數值,所以3的答案是100size指令,是求length 和type的乘積,所以4是200而5,array的定義中,沒有dup,所以結果是1

9樓:匿名使用者

size指令,是求length 和type的乘積,所以table不應該是4*100=400嗎 ?你那裡有一點點錯誤哦

微機原理與組合語言

10樓:匿名使用者

jmp start 就是一個死迴圈唄,跳轉到start那句,為的是可以多次讀取開關的狀態。你要是想讓這個程式執行一次就退出當然也可以跳轉到別的地方, 但是你沒有定義stop, 就沒辦法jmp了.

我估計你是不是把start這個標號理解成別的什麼東西了,在這裡start就是個標號,代表那句「mov dx,01f2h」的地址,沒有什麼別的意思, 並不是你所理解的"程式開始".

程式寫的肯定不對,問題很大,沒有原題沒法改,最起碼你第一次in之後得把al儲存一下吧,或者每次test al之前重新in一下,要不al都讓你給改了,你test它有什麼用啊?

之所以說沒有原題沒法改是因為如下原因:

一 不知道開關ki閉合對應的是0還是1, 你的程式把我搞糊塗了.

二 不知道你所謂的"其他情況,不做任何處理" 是 真的什麼都不做 還是 讓二極體全都不發光

三 假設開關閉合為1, 那如果開關狀態是11111010的話, 我是應該讓高四位的二極體發光呢還是什麼都不做呢? 按照我對題目的理解好像應該是讓高四位發光, 如果這樣的話, 樓上 zsq0325 同學的程式就有問題了, 用cmp是不行的.

11樓:強隊

《微機原理》是一門專業基礎課程,它的主要內容包括微型計算機體系結構、8086微處理器和指令系統、組合語言設計以及微型計算機各個組成部分介紹等內容。要求考生對微機原理中的基本概念有較深入的瞭解,能夠系統地掌握微型計算機的結構、8086微處理器和指令系統、組合語言程式設計方法、微機系統的介面電路設計及程式設計方法等,並具有綜合運用所學知識分析問題和解決問題的能力。

組合語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。在組合語言中,用助記符(mnemonics)代替機器指令的操作碼,用地址符號(symbol)或標號(label)代替指令或運算元的地址。在不同的裝置中,組合語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。

普遍地說,特定的組合語言和特定的機器語言指令集是一一對應的,不同平臺之間不可直接移植。[1]

許多彙編程式為程式開發、彙編控制、輔助除錯提供了額外的支援機制。有的組合語言程式設計工具經常會提供巨集,它們也被稱為巨集彙編器。

組合語言不像其他大多數的程式設計語言一樣被廣泛用於程式設計。在今天的實際應用中,它通常被應用在底層,硬體操作和高要求的程式優化的場合。驅動程式、嵌入式作業系統和實時執行程式都需要組合語言。

12樓:匿名使用者

strat是標籤啊 所以可以jmp 沒有stop這個標籤 所以你編譯的時候不會通過的

jmp start 這是又跳轉的首部了 這個就是無限迴圈了

請教cmp指令 組合語言 微機原理 50

13樓:一騎當後

cmp是彙編的比較指令;

cmp(compare)指令的作用:進行比較兩個運算元的大小;

例如:cmp oprd1,oprd2

為第一個操作減去第二個運算元,但不影響第兩個運算元的值;

它影響flag的cf,zf,of,af,pf怎麼判斷大小呢?

若執行指令後;

zf=1 這個簡單,則說明兩個數相等,因為zero為1說明結果為0當無符號時:

若cf=1 則說明了有進位或借位,cmp是進行的減操作,故可以看出為借位,所以,此時oprd1oprd2

當有符號時:

若sf=0,of=0 則說明了此時的值為正數,沒有溢位,可以直觀的看出,oprd1>oprd2

若sf=1,of=0 則說明了此時的值為負數,沒有溢位,則為oprd1oprd2

最後兩個可以作出這種判斷的原因是,溢位的本質問題:

兩數同為正,相加,值為負,則說明溢位;

兩數同為負,相加,值為正,則說明溢位;

故有,正正得負則溢位,負負得正則溢位。

14樓:做而論道

參考

15樓:匿名使用者

括號裡只能放bx,si,di,bp暫存器,其它的不合規則。

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

簡單的說就是 如果時間充裕 先學彙編,因為彙編會極大的幫助你認識晶片的內部,具體在執行的時候它是怎麼工作的。如果時間不充裕 先學c,因為c編寫語言只需要極少的對晶片的瞭解即可。比較 組合語言 程式 效率最高。通俗的說,寫出來的東西佔空間小。缺點 開發週期較長 c語言 程式 效率比較高。通俗的說,佔的...

微機原理,用組合語言編寫,給定一組資料,大概數,統計正數,負數,0的個數,並顯示到螢幕上(重要)

org 100h data segment buffer dw 10 greatz dw 正數zero dw 零littlez dw 負數data ends start mov ax,data mov ds,ax xor ax,ax ax清零mov greatz,ax mov zero,ax mov...

幾個彙編的問題 1 8086組合語言指令由幾部分組成 各部分的作用是什麼

1.8086組合語言指令由標號 操作碼 運算元和註釋組成,其中標號和註釋可以省略,操作碼指出指令要過盛的功能,運算元指出完成的物件.2.變數和標號的區別是變數由偽指令定義,標號是指令前面的符號,變數也偽指令定義符之間由空格分隔,標號與指令助詞符之間由冒號分隔。3.開發組合語言源程式的主要步驟有分析問...