彙編中是什麼意思,組合語言中 是什麼意思

時間 2021-08-14 23:03:29

1樓:飛鷹

“$”是組合語言中的一個預定義符號,等價於當前正彙編到的段的當前偏移值。

組合語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。在組合語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或運算元的地址。

在不同的裝置中,組合語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。特定的組合語言和特定的機器語言指令集是一一對應的,不同平臺之間不可直接移植。

2樓:問明

意思:是一個預定義符號,等價於當前正彙編到的段的當前偏移值。

例如eg:指令“jmp$+3”中的“$”表示當前這條指令在**段中的偏移量。

一、eg即“jmp$+3”表示要向前跳轉到距離這條指令3個位元組的地方。若是“jmp$-3”,則表示要向後跳轉到距離這條指令3個位元組的地方。

二、在彙編中是字串結束的標誌

如:data segment

mes1'hello',0ah,0dh,'$'

三、$同時也代表著美元

四、同時也是jquery和php等框架或語言中所用的有特殊作用的符號。

舉例:組合語言中$+4表示

$是指當前指令的地址

$+4就是當前指令+4的地址

舉個$-4的例子,也一樣。

delay:

mov r3,#25

d1:mov r4,#20

d2:djnz r4,d2

djnz r3,d1

ret也可以寫成:

delay:

mov r3,#25

mov r4,#20;mov rn,#data為2位元組指令

djnz r4,$;djnz rn,rel為2位元組指令

djnz r3,$-4;$-4的地址向上-4個位元組單元,指令就是mov r4,#20ret

3樓:網路工程菜鳥

有多種作用,可用做串結束符,也可用於指明當前地址。

4樓:胖大海君

ajmp $ 是一條無條件絕對轉移指令ajmp是操作碼(表示指令的功能是絕對轉移指令) $是運算元: 表示要轉移的目的地址就是該指令的本身地址

ajmp $ 這條指令等價於

ll: ajmp ll ;即不斷執行該指令 不走了(也可以把它 看做是一條暫停指令)

呵呵 滿意就選滿意回答

組合語言中$是什麼意思

5樓:匿名使用者

“$”是彙編

copy

語言中的一個預定義符bai號,等價於當前正彙編到du的段的當前偏移值zhi。

指令“daojmp $+3”中的“$”表示當前這條指令在**段中的偏移量。指令“jmp $+3”表示要向前跳轉到距離這條指令3個位元組的地方。若是“jmp $-3”,則表示要向後跳轉到距離這條指令3個位元組的地方。

“$”可用於表示式,並且可以用於表示式的任意位置。

更具體的內容,請參閱組合語言的“預定義符號”章節。

6樓:匿名使用者

$就是本句語言的指標地址

sjmp $,就是原地踏步

組合語言裡的 "$" 是什麼意思?怎麼用?

7樓:四舍**入

代表當前指令的來地址,如自:

data segment

str1 db a,b,c,d

leng equ $-str

就是當前地址減去str1的初始地址,即可得到str1的長度。

在字串中是結束標誌,就是字串遇到$才會結束,類似於c語言中字串中結尾的'0'。

8樓:君子酒

$: 為地址運算子,屬偽操作指令。當我們需要彙編編譯器自動計算出陣列大小的

內時候,容可能就會用到當前地址計數器$運算子了,masm用$運算子返回當前程式語句的地址偏移值,利用該數值,我們可以計算出陣列的長度。

例如:*** byte 10,20,30,40,50***len = $ - ***

則常量***len就是陣列list的長度值了(=5)。

上句的意思是:當前地址減去變數***的地址,即為5。

9樓:匿名使用者

$在彙編中代表它所在指令的地址,例如

0060h sjmp $

就是跳轉到$,而它編譯時自動變為本行地址0060h,執行時就跳轉回這行,即不斷重複執行

10樓:江西新華子陵

組合語言是計來算機提供自給使用者的最快最有效的語言,也是能夠利用計算機的所有硬體特性並能夠直接控制硬體的唯-語言。但是由於編寫和除錯組合語言程式要比高階語言複雜,因此目前其應用不如高階語言廣泛。

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

在組合語言裡$符號代表什麼意思?

11樓:匿名使用者

表示原地空轉,一般與跳轉指令相連用 如51 i彙編中,ajmp $表示程式就停在當前位置,相當於

l1: ajmp l1

舉例應用:

如果一個程式只在中斷跑,主程式沒有東西可執行的東東,而這時主程式又不能停,此時就用 ajmp $,那麼此時主程式就在該處原地不動,單步除錯時可以看到就在原地走。這是隻要中斷條件到就執行中斷。

在彙編裡$符號是什麼意思? 5

12樓:匿名使用者

表示原地空轉,一般與跳轉指令相連用 如51 i彙編中,ajmp $表示程式就停在當前位置,相當於

l1: ajmp l1

舉例應用:

如果一個程式只在中斷跑,主程式沒有東西可執行的東東,而這時主程式又不能停,此時就用 ajmp $,那麼此時主程式就在該處原地不動,單步除錯時可以看到就在原地走。這是隻要中斷條件到就執行中斷。

13樓:匿名使用者

程式執行到哪$就跟到哪。$值為所指的記憶體地址空間。

14樓:匿名使用者

請參考http://baike.baidu.com/view/622795.html?wtp=tt

15樓:匿名使用者

看圖你就會明白。實際上標號x1的首

地址為ascii碼c的字單元地址,x2的首地址開始於 db 16 dup (?) 語句,緊接著x1的終止地址,那麼它的首地址相對於x1偏移4 - 1個位元組單元;x2的終止地址相對於其首地址偏移16 - 1個位元組單元,相對於x1偏移18個位元組單元。那麼$ - x1實際上是當前地址與x1首地址之差。

由此可以得出,mov bx, y指令執行後,bx的值為18d,也就是12h。

| …… |

| 43h | ascii: c 4 byte x1

| 00h |

| 44h | ascii: d

| 00h |

| ? | 16 byte x2

……| ? | <--- $

| …… |

(當前地址$與x1首地址之差為18個位元組偏移,等同於x1與x2佔有的位元組單元,不包括x1的首地址和x2的終止地址)

關於偽指令$,它表示地址計數器的當前值,也就是本條指令第一個位元組的地址偏移,如:

org $ + 8 表示起始地址定位於當前編譯地址第一位元組的後8個位元組處;jmp $ 表示無條件轉移至當前地址,其實際執行效果為永遠停留在當前地址。

又如:array dw 1, 2, $ + 4, 3, 4, $ + 4,可以用圖表示為:

| …… |

| 01h | <--- array 1

| 00h |

| 02h | 2

| 00h |

| 08h | $ + 4 ($相對於array首地址的偏移是4,因此$ + 4 = 8h)

| 00h |

| 03h | 3

| 00h |

| 04h | 4

| 00h |

| 0eh | $ + 4 ($相對於array首地址的偏移是10,因此$ + 4 = 0eh)

| 00h |

| … … |

可見,$用在不同的地方,其表示的當前地址計數是不同的。

組合語言中db是什麼意思,組合語言中DB是什麼意思?

風翼殘念 db作為組合語言中的偽操作命令,它用來定義運算元佔用的位元組數。表示式中可包含符號 字串 或表示式等項,各個項之間用逗號隔開,字串應用引號括起來。括號內的標號是可選項,如果使用了標號。db的作用 在這裡b是byte的縮寫,即位元組,所以,該偽操作所定義的每個運算元佔有1個位元組 8位 如 ...

組合語言的DW是什麼意思,組合語言中的DW怎麼用,能舉個例子說明一下嗎

dw 是定義2位元組空間的意思。dw屬於彙編的一個偽指令,dw定義字型別變數,一個字資料佔2個位元組單元,讀完一個,偏移量加2。db定義位元組型別變數,一個位元組資料佔1個位元組單元,讀完一個,偏移量加1。dd定義雙字型別變數,一個雙字資料佔4個位元組單元,讀完一個,偏移量加4。彙編指令既不控制機器...

這個組合語言題目是什麼意思,請問組合語言 這道題是什麼思路?al bl ah bh 這是什麼意思? 還有怎麼計算啊?

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