如何改变句子上的特定词语

时间:2018-01-09 19:43:44

标签: assembly emu8086

我想改造一个句子。 例:  今天也是。天气寒冷。 我想这样做 Twday是tww.Tw cwld weather。

我做了一些事情,但只是我把小写字母变成了大号(大写锁定)。我怎样才能做出我对代码不屑一顾的事情

ADD DL,32   ;i transform character from Caps lock to small  
           JMP E4      ; i go to the next tranform

E3:     SUB DL,32   ; i tranform from small to Caps lock
E4:     MOV AH,02H  ; appear DL
        INT 21H     ;
        INC SI      ; increase by 1 

E5:     LOOP E2     ; repeat the step "E2" untili "E4" 

           JMP EXIT
END:    
           LEA DX,NOINPUT
        MOV AH,09H  ; Type the message
        INT 21H 
EXIT:       
           MOV AH,4CH   ; output
            INT 21H

1 个答案:

答案 0 :(得分:1)

了解角色的位模式对于理解应该做什么至关重要。

W = 0101 0111 w = 0111 0111
O = 0100 1111 o = 0110 1111

唯一真正重要的是5 - > 0所以

O = 01111 =字母表的第15个字母
W = 10111 =字母表的第23个字母

mov     al, 'W'
xor     al, 0b11000             ; Changes W to O
xor     al, 0b11000             ; Changes O to W

你可以看到,这样做,无论是大写还是小写都没关系,因为这些位没有被修改。