請問彙編中的巨集代表什麼,具體一點,求指教

時間 2021-08-30 10:09:27

1樓:

怎麼回答你的問題吶?

說說我的理解吧!

巨集是一段指令可以插在源程式中。巨集必須事先定義好,巨集之間可以互相呼叫,也可以自己遞迴呼叫。巨集定義本身不會產生**,只是在呼叫它時把巨集體插入到源程式,這和子程式呼叫有本質不同,即巨集並不會節省程式空間,它主要的好處是令程式書寫簡潔明瞭。

另外:巨集與子程式的區別

巨集和子程式都是為了簡化源程式的編寫,提高程式的可維護性,但是它們二者之間存在著以下本質的區別:

1、在源程式中,通過書寫巨集名來引用巨集,而子程式是通過call指令來呼叫;

2、匯程式設計序對巨集通過巨集擴充套件來加入其定義體,巨集引用多少次,就相應擴充套件多少次,所以,引用巨集不會縮短目標程式;而子程式**在目標程式中只出現一次,呼叫子程式是執行同一程式段,因此,目標程式也得到相應的簡化;

3、巨集引用時,引數是通過「實參」替換「形參」的方式來實現傳遞的,引數形式靈活多樣,而子程式呼叫時,引數是通過暫存器、堆疊或約定儲存單元進行傳遞的;

4、巨集引用語句擴充套件後,目標程式中就不再有巨集引用語句,執行時,不會有額外的時間開銷,而子程式的呼叫在目標程式中仍存在,子程式的呼叫和返回均需要時間。

總之,當程式片段不長,速度是關鍵因素時,可採用巨集來簡化源程式,但當程式片段較長,儲存空間是關鍵因素時,可採用子程式的方法來簡化源程式和目標程式。

記得採納~共同學習。

剛學微控制器,組合語言中,mov p1,0ffh與mov p1,0f0h都是什麼意思啊,求指教

2樓:匿名使用者

前面乙個指令是讀引腳埠置1,在讀引腳之前必須先向埠寫1,是t2截止,才能正確讀到引腳內容;後面乙個指令是保留p1埠高四位的資訊

3樓:匿名使用者

將ff和f0轉為2進製看看。也就是11111111,11110000,那麼分別對應p1.0~p1.7你就知道是什麼狀態了

4樓:匿名使用者

靠 那個是天書 牛人啊

組合語言中jb,ja,是什麼意思

5樓:a羅網天下

jb是指判斷位變數轉移指令,ja(jump above)大於則轉移到目標指令執行。

jb p1.3,l1意思就是說判斷p1.3的值是不是「1」 如果是就跳轉到l1程式執行,如果不是就順序執行下一條指令。

低於則跳轉,適用於無符號數的比較,要求cf=1

ja它是通過判斷兩個無符號數之間的大小關係,如果cf∨zf = 0,說明大於,則轉移。

例如:mov ah,0x1

mov al,0x0

cmp ah,al

ja l1

——ah大於al 則跳轉到l1

傳送指令

包括通用資料傳送指令mov、條件傳送指令cmovcc、堆疊操作指令push/pusha/pushad/pop/popa/popad、交換指令xchg/xlat/bswap、位址或段描述符選擇子傳送指令lea/lds/les/lfs/lgs/lss等。

邏輯運算

這部分指令用於執行算術和邏輯運算,包括加法指令add/adc、減法指令sub/sbb、加一指令inc、減一指令dec、比較操作指令cmp、乘法指令mul/imul、除法指令div/idiv、符號擴充套件指令cbw/cwde/cdqe、十進位制調整指令daa/das/aaa/aas、邏輯運算指令not/and/or/xor/test等。

移位指令

這部分指令用於將暫存器或記憶體運算元移動指定的次數。包括邏輯左移指令shl、邏輯右移指令shr、算術左移指令sal、算術右移指令sar、迴圈左移指令rol、迴圈右移指令ror等。

組合語言比機器語言的可讀性要好,但跟高階語言比較而言,可讀性還是較差。不過採用它編寫的程式具有儲存空間占用少、執行速度快的特點,這些是高階語言所無法取代的。在實際應用中,是否使用組合語言,取決於具體應用要求、軟體開發時間和質量等方面作權衡。

6樓:drar_迪麗熱巴

組合語言中jb、ja都是條件轉移指令,常用於比較兩個無符號數的大小,判斷條件是cf、zf狀態的組合。為確定cf、zf狀態,轉移前用cmp指令設定標誌位(cmp a,b)。

當計算機的硬體不認識字母符號,這時候就需要乙個專門的程式把這些字元變成計算機能夠識別的二進位制數。因為組合語言只是將機器語言做了簡單編譯,所以並沒有根本上解決機器語言的特定性,所以組合語言和機器自身的程式設計環境息息相關,推廣和移植很難。

由於彙編指令系統龐大,因而需構建指令系統體系,其指令數量龐大,格式複雜,可記憶性差等。指令中最難的是指令所支援的定址方式,其實質就是指令中運算元如何獲取。對於處理器而言,就是如何找到他所需的資料。

但對於計算機底層的組合語言而言,這種定址方式將涉及大量的計算儲存格式,與 複雜的儲存管理方式緊密相關,因而難以理解。最後,彙編指令還關係到如何影響標誌位,但處理器標誌位非常複雜,因而對其機制掌握就比較困難。

傳送指令

包括通用資料傳送指令mov、條件傳送指令cmovcc、堆疊操作指令push/pusha/pushad/pop/popa/popad、交換指令xchg/xlat/bswap、位址或段描述符選擇子傳送指令lea/lds/les/lfs/lgs/lss等。

邏輯運算

這部分指令用於執行算術和邏輯運算,包括加法指令add/adc、減法指令sub/sbb、加一指令inc、減一指令dec、比較操作指令cmp、乘法指令mul/imul、除法指令div/idiv、符號擴充套件指令cbw/cwde/cdqe、十進位制調整指令daa/das/aaa/aas、邏輯運算指令not/and/or/xor/test等。

7樓:匿名使用者

在x86組合語言中,這是對無符號數的跳轉判定,jb/ja分別是小於則跳/大於則跳;對於有符號數的跳轉判定,分別是jl/jg.

8樓:匿名使用者

jb就是轉移指令 jb bit,rel 直接位為一則跳轉

9樓:匿名使用者

1、在組合語言中,dw表示字型別的變數,每個後續的資料占用兩個位元組;db是位元組型別,即每個變數分配乙個位元組的記憶體。2,d1dw 1234h和d2db12h,34h在實際操作中是不一樣的。額外的儲存在1000h。

當使用d1dw 1234h時,1000h儲存在34h。

哭字中的點代表什麼,哭字中的一點代表什麼

豆豆家的小鴿子 哭 字中的點代表眼淚。此字的來歷歷來說法不一。清代學者段玉裁認為 哭 原指狗的哀嚎聲,用於人則指人之哀哭聲 還有人認為 哭 的古字形像人高舉雙手哭天喊地的樣子。哭 的基本義是人因悲哀或激動而流淚發出聲音,引申為弔唁 哭訴等義。組詞 哭訴 哭泣 號哭 哭喪 痛哭等。組詞一 哭訴 k s...

是什麼學校?具體一點

你是不是乙個hape啊,什麼是什麼學校,還具體一點,真是個鐵憨憨,問問題都不會描述清楚。你要是描述清楚了別人還可能會正兒八經的給你解答,就你這樣的,別人會認為你是個鐵five,最好還是再去多讀讀書吧。 瀋陽萬通汽車學校 你想找什麼型別的學校,或者選擇什麼樣的專業,描述的清楚點我好幫你分析下! 來自匯...

外匯中的一點是什麼含意,外匯中乙個點代表什麼?

波動的標準點!一般是小數點後的第四位!外匯的 點 是指在銀行外匯 的最右邊的那位阿拉伯數字,如英鎊兌美元現 2.0019,那麼這個 9 位就是點位,匯價上下浮動一下,就是盈虧了乙個點。四大貨幣的 1點 除日元是1分錢外,英鎊 歐元 瑞朗的1點都是1毫錢,即0.0001美元 元 角 分 釐 毫 外匯點...