;内存数据区有大小写混合英文ASCII码字母10个,将其转换为全部 ;大写和全部小写,在屏幕上分三行显示这三种字母. data segment h1 db 'AbCdEfghIj$' ;加上$共11个字符 h2 db 11 dup(?) ;加上$共11个字符 h3 db 11 dup(?) ;加上$共11个字符 data ends stack segment para stack 'stack' db 100 dup(?) stack ends code segment assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax mov ax,stack mov ss,ax ; mov dx,offset h1 lea dx,h1 mov ah,9 int 21h call z1 mov si,0 mov cx,10 loop1:mov al,h1[si] cmp al,61h jb x1 ;al小于61h(为大写字母)转移 mov [h3+si],al sub al,20h mov [h2+si],al jmp x2 x1: mov h2[si],al ;h2放大写字母 add al,20h mov h3[si],al ;h3放小写字母 x2: inc si loop loop1 mov bl,24h ;可换为 mov bl '$' mov h2[si],bl ; mov dx,offset h2 lea dx,h2 mov ah,9 int 21h call z1 mov h3[si],bl mov dx,offset h3 ; lea dx,h3 mov ah,9 int 21h mov ah,4ch int 21h z1 proc mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h ret z1 endp code ends end start