小白求教,組合語言的PTR運算子

2025-07-05 08:50:28 字數 2443 閱讀 3177

1樓:網友

ptr 是記憶體單元大小的字首說明符,要以byte、word、dword、near、 far 等作為字首使用。

如:mov byte ptr [si], 12mov word ptr [si], 1234mov dword ptr [si],1234567jmp near ptr @1

jmp far ptr @2

2樓:網友

不知道你對c語言熟悉不熟悉。

可以用c語言中的乙個技術點來作比較:

c裡定義乙個char 型別的陣列。

char a = ;

如果這樣使用 short b = *(short*)a);

這樣,就把char陣列前面2個字元1,2轉換為短整形資料:b=513; 0x201;

彙編裡ptr 和這個功能類似,資料區字義。

a db 1,2,3,4,5,6,7

當使用資料時,mov ax, word ptr a

則會把a中的前2個byte,當作乙個資料讀取到ax中,word指明瞭,把資料區。

變數a當作word型別來處理,同理:

定義 dw a 0102h

move al, byte ptr a,則會只處理乙個byte.

ptr 提供了一種讓你在不同型別資料之間,自由變換的方法。

組合語言 關於length運算子問題 定義上說如果是用dup說明的就返回dupl外層的值 否則全返回

3樓:網友

不要用length、size這兩個運算子,這兩個運算子對用dup定義的變數有意義,但是對普通變數一點意義都沒有。應該用lengthof和sizeof這兩個運算子 。

dseg segment

k1 db 10h,20h,30h,40hx1 db 30h,33h,10h dup(1ah),?

dseg ends

cseg segment

assume cs:cseg, ds:dsegbegin:

mov ax, dseg

mov ds, ax

mov ax, lengthof k1 ;結果是4mov ax, lengthof x1 ;結果是13hmov ah, 4ch

int 21h

cseg ends

end begin

4樓:袁曉桓

學彙編剛好學到,是怎樣子的:length運算子用於變數的前面,如果有dup,則返回最外層的n值(注意是最外層),否則恆返回1.

所以問題1返回1,而不是4

問題2返回10h

就是這樣,o(∩_o~

我是ce小白,求高手指點一下圖中的組合語言各是什麼意思

5樓:網友

ebx esi ecx都是暫存器。每個暫存器的功能都不一樣,前面的e代表是的32位的 這應該是32位的x86微控制器 ,mov [ebx+14],esi是指把esi暫存器裡面的值傳到[ebx+14]這個位址去,至於功能是什麼要看你要做什麼,**是**的都不知道,還有這裡的14不要轉換什麼進位,這只是說為在ebx的位址上偏移14個單位而已。偏移位址你根據你要實際實現的功能來的啊。

6樓:科密

label是定義跳轉標籤,mov[ebx+14],esi是吧esi的值傳給[ebx+14],mov esi,[ecx+18],jmp是跳轉指令,例如jmp returnhere就是跳轉到returnhere這個標籤的位置!

組合語言中邏輯運算子怎麼計算

7樓:網友

就是按數位電路中的邏輯運算來計算。

c語言小白求問,,第66題,,c和d是怎麼進行運算的,指向哪乙個內容

8樓:網友

答案是a

其中c:(*ptr + 1) +2

的優先順序最高。

所以*ptr 此時ptr[0]的內容,也就是a[0]

a[0] +1 + 2也就是a[0][3]的 位址。

d具有一定的迷惑性,注意ptr是乙個指標陣列,但不同於二維陣列。

ptr[0]指向了二維陣列a的第一行。但是ptr[1]和ptr[2]並沒有賦值(也就說他們並沒有指向二維陣列的第二行和第三行)

所以d中的。

(ptr + 1)[2])

ptr + 1是ptr[1]指向的一維陣列的位址,但因為這裡沒有初始化過,所以其內容是未知的。

ptr + 1)[2] 其實就是ptr[3]的內容,顯然這個內容更不存在了。

ptr+1)[2] 取的是ptr指標陣列的第四個指標,指向的陣列中的第乙個元素。

程式設計小白求教,這段程式**出錯了?(c++)

9樓:網友

letter 與數字之間空格不要就可以了。

組合語言的操作符offset具體有什麼用?求詳細解答

簡單說,是指一個地址。如 mess db hello 顯然,mess是一個地址,它存放著 hello 這個字串。如何將mess的地址放入dx暫存器呢,可用兩種不同的指令 1 lea dx,mess 2 mov dx,offset mess他們的作用是等價的。這個函式中不止一個單元格哦 關鍵是offs...

在c語言中,運算物件必須是整型數的運算子是什麼

d.取餘操作符的運算元必須是整型 c語言中運算子和表示式數量之多,在高階語言中是少見的。正是豐富的運算子和表示式使c語言功能十分完善。這也是c語言的主要特點之一。c語言的運算子不僅具有不同的優先順序,而且還有一個特點,就是它的結合性。在表示式中,各運算量參與運算的先後順序不僅要遵守運算子優先順序別的...

c語言中的位運算子中 按位取反 是怎麼運算的

使用 按位取反運算的時候,計算機會將運算元所對應的二進位制表示式的每一版 個位進行取反權計算,取反後所得到的值就是 按位取反的運算結果。例如,假如計算機是32位的,接下來要計算 5的值,計算過程如下 5 的二進位制表示式為 0000 0000 0000 0000 0000 0000 0000 010...