assume cs:code,ds:data
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment stack
dw 8dup(0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
xor bx,bx
mov ax,0b872h
mov cx,3
s3:
push cx
push ax
push bx
mov es,ax
mov si,0
mov di,0
mov cx,10h
s1:
mov al,ds:[si]
mov es:[di],al
inc si
add di,2
loop s1
mov di,1
pop bx
mov al,ds:10h[bx]
inc bx
mov cx,10h
s2:
mov es:[di],al
add di,2
loop s2
pop ax
add ax,0ah
pop cx
loop s3
mov ax,4c00h
int21h
code ends
end start
assume cs:code,ds:data
data segment
db 'word',0
db 'unix',0
db 'wind',0
db 'good',0
data ends
stack segment stack
db 15 dup(0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov cx,4
mov si,0
s:
push cx
call capital
pop cx
inc si
loop s
mov ax,4c00h
int 21h
capital:
mov cl,[si]
mov ch,0
jcxz ok
and byte ptr [si],11011111b
inc si
jmp short capital
ok:
ret
code ends
end start