組合語言中符號的意思是什麼,在組合語言裡 符號代表什麼意思?

2021-08-14 23:03:40 字數 3353 閱讀 3219

1樓:匿名使用者

看圖你就會明白。實際上標號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 |

| … … |

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

2樓:匿名使用者

當前句子的地址

$-x1就是x1+x2總共佔用空間大小

3樓:匿名使用者

是一個等待符,比如jmp $;他就會一直停在這裡,

4樓:氣憤我不註冊了

就是當前地址。(bx)=18

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

5樓:匿名使用者

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

l1: ajmp l1

舉例應用:

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

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

6樓:匿名使用者

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

l1: ajmp l1

舉例應用:

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

7樓:匿名使用者

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

8樓:匿名使用者

請參考

9樓:匿名使用者

看圖你就會明白。實際上標號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 |

| … … |

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

組合語言中csdsss的區別,組合語言中 cs ds ss的區別是什麼?

cs ds ss 分別是 段暫存器 資料段暫存器 棧段暫存器。簡單的8086彙編程式可以直接使用系統棧 或者預設的棧 所以 可以不用 ss 暫存器。即簡單的程式通常包括一個 段和一個資料段。資料通常放在資料段中,一般只需在程式的開始對資料段暫存器ds賦值 mov ax,seg data mov ds...

組合語言中procfar是什麼意思

你說的大概是這麼一種程式框架 main proc far push ds xor ax,ax push ax retmain endp end main 這是一種最原始的dos下exe程式的框架。那時候,dos的版本很低,dos還沒有提供4ch號dos功能呼叫,結束程式只能用int 20h完成。而 ...

ARR組合語言是什麼意思在組合語言裡表示什麼意思?具體怎麼用?

組合語言的arr的含義估計有兩種可能 1.arr是陣列或變數名稱 可能性較大 例如 內data segment arr db 5ah,76h,40h,3ch,6dh,71h,8bh,95h data ends 2.arr是某處程式段入容口 可能性較小 例如 schmax add si,2 mov d...