汇编指令and和or指令

(1) and指令:逻辑与指令,按位进行与运算
and 指令
按位与
作用:只将某一位变成0,而其他位保持不变
使用:谁要变0,谁就和0与
and就是与运算,两个数按二进制位相与,全1为1,有0为0,常用于把低位清零

mov al,01100011B
and a1,OO111011B

执行后:a1=00100011 B

通过该指令可将操作对象的相应位设为0,其他位不变

将al的第6位设为0的指令是:  and al, 10111111 B
将al的第7位设为。的指令是: and a1, 01111111 B
将al的第0位设为0的指令是:  and al, 11111110B

(2) o:指令:逻辑或指令,按位进行或运算
or 指令
按位或
作用:只将某一位变成1,而其他位保持不变
使用:谁要变1,谁就和1或

mov al,01100011B
or al,00111011B

执行后:al=01111011B

通过该指令可将操作对象的相应位设为1,其他位不变

将al的第6位设为1的指令是:or al,01000000B
将al的第7位设为1的指令是:or a1,10000000B
将al的第0位设为1的指令是:or a1,00000001B

and和or指令汇编举例


assume  cs:code
 
 
code segment
       
             ; 逻辑运算   按照二进制位运算
     start: mov ax,0
            
            mov al, 00001111B
            and al, 11110000B
            ;       00000000B    
 
 
 
            mov ax,0
            mov al, 00001111B
             or al, 11110000B
            ;       11111111B 
 
            mov ax,4c00H
            int 21H
             
    
code ends 

通过and,or逻辑运算指令实现大写转小写,小写转大写


assume cs:code, ds:data
 
data segment
   db 'puThon'
   db 'JAVA'
 
data ends
 
; z 122   7A  0111 1010  小写z
             ;1101 1111
 
; Z 90    5A  0101 1010  大写Z
            ; 0010 0000
 
code segment
  start: mov ax,data
         mov ds,ax
         mov bx,0
         mov cx,6
         
    ; 小写转大写
    upLet:  mov al,ds:[bx]
            and al,11011111B
            mov ds:[bx], al
            inc bx
            loop upLet
    
   mov cx,4
    ; 大写转小写 
   upX:  mov al,ds:[bx]
          or al,00100000B
          mov ds:[bx],al
          inc bx
          loop upX
 
         mov ax,4C00H
         int 21h
  
 
code ends
 
end start

复制字符串

assume cs:code, ds:data
 
data segment
      db 'welcome to asm'
      db '--------------'
data ends
 
code segment
      start: mov ax, data
             mov ds, ax             
 
             mov cx, 7
             mov si,0
             mov di,16
             
      cp:    mov ax, ds:[si]
             mov ds:[di], ax
 
             add si,2
             add di,2
             loop cp
 
             mov ax,4C00H
             int 21H
 
code ends
 
end start

发布日期:

所属分类: 易语言 标签: