王爽汇编 实验11

assume cs:codesg
datasg segment
    db "Beginner's ALL-purpose Symobolic Instruction Code.",0
datasg ends

codesg segment
begin:
    mov ax,datasg
    mov ds,ax
    mov si,0
    call letterc

    mov ax,4c00h
    int 21h

letterc:
    mov al,[si]         ;取数
    cmp al,0            ;默认值的时候 ZF标志是 NZ
    jz zero
    cmp al,61h          ;比a字符小跳出
    jb no
    cmp al,7ah          ;比z字符大跳出
    ja no
    and al,11011111B     ;变大写
    mov [si],al         ;送回数据里
no:    
    inc si              ;下一个
    jmp letterc
zero:                   
    ret                 ;jnz letterc 这样的写法因为前面有cmp会导致出不了循环

codesg ends
end begin

你可能感兴趣的:(王爽汇编 实验11)