1樓:匿名使用者
表示該指令為32位指令,單獨用bl 可能是16位的,也可能是32位,keil為了區分 反彙編時 用bl.w 表示 32位,bl表示16位
2樓:大別山的蝸牛
單獨用bl 有2種可能的情況:1 、16位 2、32位
使用keil是為了區分 反彙編時 用bl.w 表示 32位
3樓:匿名使用者
bl是arm彙編中用來呼叫子程式的指令,它把bl後面一條指令的位址放到r14暫存器裡,r15暫存器(pc當前指標位址)就設定成要跳往的位址。這樣在這個子程式返回時,再mov pc, r14就可以返回到bl後面的位址了。你這句有沒有弄錯,
4樓:匿名使用者
bl.w表示該指令為32位指令,單獨用bl 可能是16位的,也可能是32位,keil為了區分 反彙編時 用bl.w 表示 32位,bl表示16位。
組合語言(assemblylanguage)是面向機器的程式語言。在彙編語合中,用助記符(memoni)代替操作碼,用位址符號(symbol)或標號(label)代替位址碼。這樣用符號代替機器語言的二進位製碼,就把機器語言變成了組合語言。
於是組合語言亦稱為符號語言。使用組合語言編寫的程式,機器不能直接識別,要由一種程式將組合語言翻譯成機器語言,這種起翻譯作用的程式叫匯程式設計序,匯程式設計序是系統軟體中語言處理系統軟體。匯程式設計序把組合語言翻譯成機器語言的過程稱為彙編。
5樓:格古達
表示32位指令,可以取到r1-r12
在組合語言裡 = 表示什麼意思 ?具體怎麼用?
6樓:匿名使用者
等號語句(=)是偽指令。用來定義符號常數,用符號表示乙個常數,它的格式:
符號名 = 數值表示式,如:
abc = 10;abc = 40/2
注意,數值表示式是可以計算出數值的,無法計算出的變數是不能作為數值表示式定義的。所以用法如同類c語言賦值操作符。當然用等號語句定義過的符號可以被重定義,如:
abc = 10
abc = 2 * abc + 1。
另外,等號語句的用途範圍比較狹窄,建議使用equ語句。它既可以定義常量、字串,也可以定義暫存器或指令,還可以定義運算元符號:
1. 定義常量: count equ 100;
2. 定義字串: ms equ 『microsoft corporation』
3. 定義暫存器或指令: move equ mov
stack equ ss
4. 定義儲存器運算元符號:
varw equ this word
varb db 2 dup (0)
7樓:匿名使用者
與equ類似,但是equ能重新定義。如:
a equ 90
a equ 91 ;error
b=90
b=91
8樓:
這是c的寫法,,c是直接賦值 彙編用mov a,#20h
9樓:匿名使用者
彙編中有這個符號嗎?
10樓:彙編大贏家
彙編裡有=?你先舉個例子
組合語言中jb,ja,是什麼意思
11樓: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等。
組合語言比機器語言的可讀性要好,但跟高階語言比較而言,可讀性還是較差。不過採用它編寫的程式具有儲存空間占用少、執行速度快的特點,這些是高階語言所無法取代的。在實際應用中,是否使用組合語言,取決於具體應用要求、軟體開發時間和質量等方面作權衡。
12樓: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等。
13樓:匿名使用者
在x86組合語言中,這是對無符號數的跳轉判定,jb/ja分別是小於則跳/大於則跳;對於有符號數的跳轉判定,分別是jl/jg.
14樓:匿名使用者
jb就是轉移指令 jb bit,rel 直接位為一則跳轉
15樓:匿名使用者
1、在組合語言中,dw表示字型別的變數,每個後續的資料占用兩個位元組;db是位元組型別,即每個變數分配乙個位元組的記憶體。2,d1dw 1234h和d2db12h,34h在實際操作中是不一樣的。額外的儲存在1000h。
當使用d1dw 1234h時,1000h儲存在34h。
組合語言裡jc指令是什麼意思?
16樓:天池血崩
jc=jump if carry
當運算產生進製標誌時,即cf=1時,跳轉到目標程式處。e69da5e6ba9062616964757a686964616f31333363396462
例如:add al,bl
jc carrybit
inc al;如果al+bl產生了進製,這一句就不執行了。
carrybit:
neg al
這段程式沒有任何意義,僅僅作為示例哈。。。
相同的指令還有:
jnc,當cf=0時跳轉;
jz,當zf=1時跳轉,jnz,當zf=0時跳轉;
jo,當of=1時跳轉,jno,當of=0時跳轉;
jp,當pf=1時跳轉……
依此類推,標誌暫存器的各個位基本上都可以用來做「條件跳轉」的條件。
當然,條件跳轉不僅僅是標誌暫存器位,還可以是cx如:a_loop:
;do something
dec cx
jcxz
jmp a_loop
可以看出,這一段相當於乙個loop指令。。。
還有,用於大小判斷型的:
cmp op1,op2
jxx ***x
其中jxx有以下幾種:
ja表示op1>op2,jna表示op1<=op2;
jb表示op1=op2;
je表示op1=op2,jne表示op1<>op2;
還有jae、jnae、jbe、jnbe等等功能重複不再贅述。
以上是無符號數的比較。
有符號數的比較將a換成g,將b換成l即可。
a=above b=below g=greater l=less介紹的夠詳細了吧。。。
請問組合語言 這道題是什麼思路?al bl ah bh 這是什麼意思? 還有怎麼計算啊?
17樓:匿名使用者
這幾條彙編指令其實並沒有完成任何結構性的功能,最多只是給學習者演示一下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
18樓:匿名使用者
很少有彙編指令沒有完成任何建構函式,同比增長只是為了演示到學習者的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
JC在組合語言中是什麼意思,JC在組合語言中什麼意思
jc 在組合語言 是一 bai個du 條件轉移指令的操作碼zhi 後面應該再加上dao乙個位元組的版偏移量 即要轉移權到位址 為運算元 例如 jc llla 其中 jc 為操作碼 表示指令要執行的功能 j 表示轉移 c表示轉移到條件 當進製標誌c 1 即有進製時 轉移 否則不轉移 llla 是運算元...
組合語言中db是什麼意思,組合語言中DB是什麼意思?
風翼殘念 db作為組合語言中的偽操作命令,它用來定義運算元佔用的位元組數。表示式中可包含符號 字串 或表示式等項,各個項之間用逗號隔開,字串應用引號括起來。括號內的標號是可選項,如果使用了標號。db的作用 在這裡b是byte的縮寫,即位元組,所以,該偽操作所定義的每個運算元佔有1個位元組 8位 如 ...
組合語言中符號的意思是什麼,在組合語言裡 符號代表什麼意思?
看圖你就會明白。實際上標號x1的首地址為ascii碼c的字單元地址,x2的首地址開始於 db 16 dup 語句,緊接著x1的終止地址,那麼它的首地址相對於x1偏移4 1個位元組單元 x2的終止地址相對於其首地址偏移16 1個位元組單元,相對於x1偏移18個位元組單元。那麼 x1實際上是當前地址與x...