assume cs:code,ds:data data segment db "Beginner's All-purpose Symbolic Intruction Code.",0 data ends code segment start:mov ax,data mov ds,ax mov si,0 call letterc s0:mov ax,4c00h int 21h letterc:mov al,[si] mov ah,[si] and al,11011111b mov [si],al inc si cmp ah,0 jne letterc ret code ends end start
在实验中,我用al和ah保存每次访问字符串的值,al用来改大小写
ah用来判断该字符是否为0
为什么要多用一个ah来保存呢,因为空格' 'ascii是00100000b,和11011111b与的时候,正好是00000000b,会产生错误判断。所以我多使用了ah。