求助組合語言中or和and的意義

2022-03-07 05:43:39 字數 3752 閱讀 8029

1樓:匿名使用者

or是按位「或」操作,當且僅當兩運算元對應位都為「0」時結果相應位為「0」,否則結果相應位為「1」。

例:1101b or 0100b = 1101band是按位「與」操作,當且僅當兩運算元對應位都為「1」時結果的相應位為「1」,否則結果相應位為「0」。

例:1101b and 0100b = 0100bmov al,1 ;0001b送al

or al,2 ;0001b or 0010b 結果送al 即(al0)=0011b=3

這兩條命令執行後的結果是什麼(al)=3

2樓:謙者無敵

or指令對目的運算元和源運算元進行或運算,結果存在目的運算元中.

and指令對目的運算元和源運算元進行與運算,結果存在目的運算元中.

and舉例:字元的大小寫轉化'a'->'a'

mov al,'a'

and 01000001b

a的ascii 為97 al= 01100001and 01000001

al = 01000001

得到65 即 'a'的ascii碼

or舉例:字元的大小寫轉化'a'->'a'

mov al,'a'

or al,00100000b

a的ascii 為65 al=01000001or 00100000

al = 01100001

得到97 即 'a'的ascii碼

另外and和or指令執行後都是清除了溢位和進位標誌,同時根據目的運算元的結果設定零標誌,符號標誌,奇偶標誌,可以根據這些標誌進行程式的跳轉

3樓:

and主要用在使一個運算元中的若干位維持不變,而另外若干位清為0的場合

or主要用在使一個運算元中的若干位維持不變,而另外若干位清為1的場合這兩個指令也可以把cf清0,自己與自己相「與」或相「或」,則值不變,cf清為0

----------------------------0000 0001 與0000 0010相或,結果為0000 0011

al=3

4樓:匿名使用者

mov al ,1

把1存放到al這個暫存器裡

or al, 2

把 al中的數與2相或

也就是00000001與00000010相或結果是00000011也就是3

所以al中為3

5樓:危獻

0000 0001

0000 0010

-----------

0000 0011

al=3

彙編中or與and指令詳細意義

6樓:匿名使用者

or稱為(或)運算,是一種位運算,即用1的位與對應值進運算 ,運算之前進行2進位制轉換

如 0b00001111 or 0b11000000 值為0b11001111,

and為疊加時取0 如 0b00001111 and 0b11000011 值為0b00000011,

彙編 語言 or 和and通常怎麼用用法有什麼不同

7樓:匿名使用者

or是或運算,在數電裡面可以理解為 相加。

and是與 運算。在數電裡面可以理解為 相乘。

彙編指令and、or什麼意思?

8樓:手機使用者

1)and指令:邏輯與指令,按位進行與運算。

mov al, 01100011b

and al, 00111011b

執行之後:al =00100011b

通過該指令可將操作物件的相應位設為0,其他位保持不變。

2)or指令:邏輯或指令,按位進行或運算。

mov al, 01100011b

or al, 00111011b

執行之後:al =01111011b

通過該指令可將操作物件的相應位設為1,其他位保持不變

組合語言 or ah,al 意義

9樓:匿名使用者

ah,al很明顯了就是

a high

a low

一個16位暫存器高位和地位的稱呼也就是你說的axor運算就是.運算的兩個位都為真得到的結果就為真舉個例子:

1 or 2看的仔細切換成二進位制運算

0001

or 0010

0011(也就是十進位制的3)

因為第一位是1,第二位是0,而第二個數的第一位是0第二位是1根據 or計算原理.1 or 0=1,0 or 0=0,0 or 1=1,1 or 1=1

的原理那得到的就是0011

看上去很清楚

現在來說說ah和al

ax是一個16位暫存器

ah=高八位(a high)

al=低八位(a low)

ax=1234h =也就是高位12,低位34如果計算的話那就是

12h = 0001 001034h = 0011 0100計算的結果就是: 0011 0110 = 36h = 54可是直接 or ah, al就是高位和低位進行or運算將結果高存在ah裡面

計算得到的結果就是

ax = 3634h

or會改變一些標誌暫存器的值-除了運算有的時候也會被當做判斷使用例如 cmp al, 0就可以寫作 or al, al-比較短小精悍cmp eax, eax=or eax, eax之類的可以參考一下。《intel組合語言程式設計》等書籍

10樓:細雨搖琴

or 是或 ah是ax暫存器的高位 佔一個位元組,al是ax暫存器的低位也佔一個位元組

ax=ah+al or是或 1or 1=1 1or0=1 0or0=0

11樓:

意思是: ah和al求邏輯「或」運算,結果送ah中。這個常用在判斷ax是否為0,只有ah,al全為0時,結果才為0.

12樓:

這樣說吧,ah=1001 1100,al=1011 0001時,or ah,al就是ah與al進行邏輯或運算,結果送到ah,ah=1011 1101。

1001 1100

or 1011 0001

---------------

1011 1101

所以說,or ah,al 並不是把ah和al組合起來。

13樓:腦子很笨

ah 和 al 進行或運算 結果儲存在ah中

組合語言執行xor,or,and,not,test邏輯指令的時候標誌位如何變化?請舉出例子,萬分感謝!!

14樓:紅葉戀千秋

1、 test al,02h ;若al中的d1位是『1』。則zf=0,否則為1;cf和of都為0

2、 not 對所有標誌位都沒有影響

3、xor or and 都使 cf=of=0 其他位 要看具體情況

15樓:籬落風瀟瀟

雙運算元邏輯指令and、or、xor和test所支援的運算元組合同加減法指令一樣。雙運算元邏輯指令均設定cf=of=0,根據結果設定sf、zf和pf狀態,而對af未定義。注意,單運算元邏輯非指令not不影響標誌位。

看看下面的你會更明白些。

網頁連結

組合語言中st指令什麼意思組合語言中,ST指令什麼意思?

st是store的簡寫,ld是load簡寫,前面一個是寫,後面一個是讀。st是源暫存器 儲存區,ld是儲存區 目的暫存器。字資料傳送指令 ld,st 這是最簡單的資料傳送指令,不用考慮符號位的問題,直接以機器的位長存取資料。ld 從記憶體中取32位字資料放人暫存器,st將暫存器中的32位字資料儲存到...

組合語言中ptr的作用是什麼,組合語言中CMP的作用是什麼?

ptr應該就是pointer 說明地址指標型別。當兩個運算元型別均不明確時,必須用byte ptr 位元組屬性 或word ptr 字屬性 將一個儲存器運算元定義為位元組或字型別。如 mov byte ptr si oah 指明 si 為位元組型別 在沒有暫存器名存在的情況下,用操作符 x ptr ...

組合語言中的問題求高手解,組合語言中的一個問題求高手解

mov ax,a cmp ax,b bnz l 執行else mov bx,0 mov d,ax jmp ll l ll if的下一條語句復 bnz 標號制 若上一條指令執行的結果非零,就跳到標號執行他是判斷flag暫存器的zf位,若結果不為0,則 跳轉到標號處 組合語言程式的一道題。求高手解答 你...