1樓:
離@f最近的一個@@標號
就是把最近的@@標號所標出的地址值入棧
2樓:
@是間接定址用的,可以理解為取地址,一般後面為r0-r7
3樓:兆初晴謬美
看圖你就會明白。實際上標號x1的首地址為ascii碼c的字單元地址,x2的首地址開始於db16dup(?)語句,緊接著x1的終止地址,那麼它的首地址相對於x1偏移4-1個位元組單元;x2的終止地址相對於其首地址偏移16-1個位元組單元,相對於x1偏移18個位元組單元。
那麼$-x1實際上是當前地址與x1首地址之差。由此可以得出,movbx,y指令執行後,bx的值為18d,也就是12h。
|……|
|43h|ascii:c4bytex1
|00h|
|44h|ascii:d
|00h|
|?|16bytex2
……|?|<---$
|……|
(當前地址$與x1首地址之差為18個位元組偏移,等同於x1與x2佔有的位元組單元,不包括x1的首地址和x2的終止地址)
關於偽指令$,它表示地址計數器的當前值,也就是本條指令第一個位元組的地址偏移,如:
org$+8表示起始地址定位於當前編譯地址第一位元組的後8個位元組處;jmp$表示無條件轉移至當前地址,其實際執行效果為永遠停留在當前地址。
又如:arraydw1,2,$+4,3,4,$+4,可以用圖表示為:
|……|
|01h|<---array1
|00h|
|02h|2
|00h|
|08h|$+4($相對於array首地址的偏移是4,因此$+4=8h)
|00h|
|03h|3
|00h|
|04h|4
|00h|
|0eh|$+4($相對於array首地址的偏移是10,因此$+4=0eh)
|00h|
|……|
可見,$用在不同的地方,其表示的當前地址計數是不同的。
在組合語言裡$符號代表什麼意思?
4樓:匿名使用者
表示原地空轉,一般與跳轉指令相連用 如51 i彙編中,ajmp $表示程式就停在當前位置,相當於
l1: ajmp l1
舉例應用:
如果一個程式只在中斷跑,主程式沒有東西可執行的東東,而這時主程式又不能停,此時就用 ajmp $,那麼此時主程式就在該處原地不動,單步除錯時可以看到就在原地走。這是隻要中斷條件到就執行中斷。
在組合語言裡 = 表示什麼意思 ?具體怎麼用?
5樓:匿名使用者
等號語句(=)是偽指令。用來定義符號常數,用符號表示一個常數,它的格式:
符號名 = 數值表示式,如:
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)
6樓:匿名使用者
與equ類似,但是equ能重新定義。如:
a equ 90
a equ 91 ;error
b=90
b=91
7樓:
這是c的寫法,,c是直接賦值 彙編用mov a,#20h
8樓:匿名使用者
彙編中有這個符號嗎?
9樓:彙編大贏家
彙編裡有=?你先舉個例子
組合語言中@符號有什麼用?
10樓:匿名使用者
你看一下間接定址那裡,一種定址方式。你發**這句話不懂不要緊。慢慢來。
組合語言中@,#是什麼含義啊
11樓:墨汁諾
#表示立即數定址,採用立即定址方式的指令,在立即數前面加上立即定址符「#」。
例如指令mov a,#30h中30h就是立即數,指令功能為將30h賦給累加器a。
@表示暫存器的間接定址。
用組合語言寫程式,就得用匯編編譯器,不同的彙編編譯器對彙編語法有些異,@,#都是linux作業系統中常用的彙編編譯器所使用的彙編語法,而windows下常使用的masm編譯器就沒有@,#這些符號。
12樓:匿名使用者
用組合語言寫程式,就得用匯編編譯器,不同的彙編編譯器對彙編語法有些異,@,#都是linux作業系統中常用的彙編編譯器(忘了是什麼)所使用的彙編語法,而windows下常使用的masm編譯器就沒有@,#這些符號。
組合語言中 標號是什麼意思
13樓:匿名使用者
標號是程式跳轉的地址,當程式執行跳轉指令時,需要知道確定的標號,才能跳,否則會編譯報錯。
14樓:匿名使用者
彙編語bai
言中標號有以下幾層意思:du
1、作為轉移指令所要zhi
到達地址的dao標記。
例如:mov a,r2
cjne a,#10,nxt
nxt:
jc nxt1
clr c
nxt1:
setb c
ret2、作為內一個子程式的容名稱。
例如:setb p1.0
lcall delay
clr p1.0
lcall delay
......
delay:
mov r2,#200
djnz r2,$
ret3、作為一個**的起始地址
例如:mov dptr,#tab
clr a,r2
movc a,@a+dptr
......
tab:
db 0c0h,............
15樓:匿名使用者
標號是指定地址的一個別名,在你編寫程式跳轉時提供方便,也增加程式的可讀性。
16樓:富國****
組合語言的標號就是用來唯一區分一個段的「標籤」,在編譯時被編譯器編譯為「偏移地址」
組合語言XOR命令什麼意思,組合語言中,指令XOR CX,CX表示什麼意思
凡筱雲 組合語言xor命令是異或的意思,異或,英文為exclusive or,或縮寫成xor 異或 xor 是一個數 算符。它應用於邏輯運算。異或的數學符號為 計算機符號為 xor 異或可逆運算。1 xor 1 0,0 xor 0 0,1 xor 0 1,0 xor 1 1。a xor b的運算方法...
組合語言中什麼是立即數,彙編立即運算元有哪些
立即數 一個立即數是一塊資料儲存作為指令本身,而不是在一箇中的一部分內容儲存器位置或寄存。器。立即值通常用於載入值或對常量執行算術或邏輯運算的指令。概述 在大多數指令集架構下,各種指令也可以對常量值執行操作。例如,考慮一個可以新增兩個寄。存器並將結果儲存在第三個暫存器中的isa 新增 r3,r2,r...
組合語言中畫出資料段中資料在主存中的儲存形式
資料段中資料在主存中的儲存形式為 07 00 41 42 ff 06 aa ff 00 05原理,自己寫個空程式,編譯後,用debug dds 100 10f 看下,就行了。data segment use16 a dw b 1 buf db ab 1,b acon equ 500h len equ...