【中断例程】显示ds:si处字符串

image

assume cs:code

code segment

start:
	mov ax,0
	mov es,ax
	mov di,200h

	mov ax,cs
	mov ds,ax
	mov si,offset show_str

	mov cx,offset show_str_end - offset show_str
	cld
	rep movsb

	mov word ptr es:[7ch*4],200h
	mov word ptr es:[7ch*4+2],0

	mov ax,4c00h
	int 21h
 
show_str:
	push es
	push ax
	push cx
	push dx
	push si
	push di

	mov ax,0b800h
	mov es,ax
	mov al,160
	mul dh
	mov di,ax
	mov al,2
	mul dl
	add di,ax

	mov ah,0

show:
	mov al,ds:[si]
	cmp ax,0
	je show_over
	mov es:[di],al
	mov es:[di+1],cl
	inc si
	add di,2
	jmp short show

show_over:
	pop di
	pop si
	pop dx
	pop cx
	pop ax
	pop es
	iret
	
show_str_end:
	nop

code ends

end start
posted @ 2022-05-31 13:45  moon_orange  阅读(32)  评论(0编辑  收藏  举报