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...
哭字上的一點像什麼,哭字中的一點代表什麼
像淚點從眼睛裡掉下來。哭,讀音k 哭與笑一樣,從人 大,人體形 人上面竟版然頂著兩個口,可權見伸冤或求助之迫切。造字本義 呼天搶地,伸冤求情。含義是因痛苦悲哀或感情激動而流淚,有時還發出聲音。哭,是人類生理情緒的一種表達或表露,亦是人類表達情感的一種方式。哭一般定義為由於情感的大浮動波動而流淚出聲。...
地圖學中圖幅編號計算方法是什麼?具體一點
籍雪須琬 很高興為您解答 現行的圖幅編號採用的是 1 100萬比例尺地形圖用行列式編號法,其他比例尺地形圖均在此基礎上疊加行列號。首先理解圖符編號構成 圖幅編號共10位,例如j50b001002,拆解來看,j表示圖符所在地在1 100萬地形圖中的j行即第10行 與緯度相關 50表示圖符所在地在1 1...