assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset do0
mov ax,0
mov es,ax
mov di,200H
mov cx,offset do0end-offset do0
cld
rep movsb
mov word ptr es:[0*4],200H
mov word ptr es:[0*4+2],0
mov ax,4c00H
int 21H
do0: jmp short do0start
db "oVerflow!",0
do0start: mov ax,cs
mov ds,ax
mov dh,12
mov dl,36
mov cl,12
mov si,202H
call show_str
mov ax,4c00H
int 21H
show_str: pushf
push dx
push cx
push ax
push si
push es
push bx
mov ax,0b800H
mov es,ax
mov al,160
dec dh
mul dh
sub dh,dh
dec dl
add dl,dl
add ax,dx
mov bx,ax
mov dl,cl
s: mov ch,0
mov cl,[si]
jcxz s1
mov ch,dl
mov es:[bx],cx
inc si
add bx,2
jmp short s
s1: pop bx
pop es
pop si
pop ax
pop cx
pop dx
popf
ret
do0end: nop
code ends
end start |