`
come_for_dream
  • 浏览: 116745 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

大小写转换

阅读更多

                                                                 汇编跳转的巧妙实现

 

大小写转换

 

DATAS SEGMENT
    ;此处输入数据段代码  
    db 'fjssbfAFDNbjJBJw'
DATAS ENDS

STACKS SEGMENT
    
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV ax,DATAS
    MOV DS,AX
    mov ax,OFFSET S3
    push ax
     mov ax,OFFSET S0
    push ax
     mov ax,OFFSET S1
    push ax
  
   
    MOV AX,0B872H ;显存位置 
 S0:
     
     mov es,ax ;将显存地址赋给附加段  
     mov si,0  
     mov di,0 
     mov cx,10h ;因为字符有16个所以这里赋值为10h  
      
S:  
     MOV al,ds:[di]  
     mov es:[si],al  
  ;上面这两步将数据段中的字符一一给复制到显存的偶数位  
    inc di  
    add si,2  
    loop S
    POP bx  
    JMP bx

    ;nnnnnnnnnnnnnnnnnnnnnnnnnn
S1: mov bx,0
    mov cx,10h
 s4:
    mov al,[bx]
    and al,11011111b
    mov [bx],al
    inc bx
    loop s4
    
            
   MOV AX,0B872H ;显存位置  
   add ax,0ah
   POP bx  
   JMP bx
     
     
S3: MOV AH,4CH
    INT 21H
CODES ENDS
    END START

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics