assume cs:codeseg,ds:dataseg
dataseg segment
d1 db 'hello word masm'
d1len db 0
d2 db offset d1len dup (0)
d2len db 0
dataseg ends
codeseg segment
main:
mov ax,dataseg
mov ds,ax
;移动文字
call mov_str
;转大写
mov si,offset d2
call toupp
;显示第一个文字
mov si ,0h
mov di,07b0h
call show_str
;显示第二个文字
mov si,offset d2
mov ax,offset d1len
add ax,ax
add ax,07b4h
mov di,ax
call show_str
mov ax,04c00h
int 021h
toupp:
mov cx,offset d1len
toupps:
mov al,byte ptr ds:[si]
and al,011011111b
mov byte ptr ds:[si],al
inc si
loop toupps
ret
show_str:
mov ax,0b800h
mov es,ax
mov cx,offset d1len
show_strs:
mov al,byte ptr ds:[si]
mov byte ptr es:[di],al
inc di
mov byte ptr es:[di],0CFh
inc di
inc si
loop show_strs
ret
mov_str:
mov si,0
mov di,offset d2
mov ax,dataseg
mov es,ax
mov cx,offset d1len
rep movsb
ret
codeseg ends
end main
dos在屏幕中显示字符(call+ret)
于 2023-12-08 10:10:50 首次发布