汇编语言-王爽实验10-题1显示字符串

assume cs:code
data segment
	db 'Welcome to masm!',0
data ends


code segment
start: mov dh,8   ;行数
	mov dl,3   ;列数
	mov cl,01110001B;颜色
	mov ax,data
	mov ds,ax
	mov si,0
	call show_str

	mov ax,4c00h
	int 21h
show_str: ;
	mov bh, cl   ;保存颜色到bx高位

	mov ax,25 ; 每行25个
	mul dh    ; 计算偏移位置 ax = dh * al 
	mov dh ,0   ; dh用完了
	add ax, dx     ; 得到最终偏移位置 = 行偏移+列偏移
	add ax,0B800h      ;  此时es指向要显示的首位置
	mov es, ax

	mov di,0 ; 存储位置

put_str:
	mov cl,ds:[si]
	mov ch,0
	jcxz ok   ; 如果cx=0就结束
	;不等于0就把字符串复制过去
	mov bl,cl

	mov es:[di], bx
	add di,2
	inc si
	jmp short put_str;短转移
ok : ret

code ends
end start

你可能感兴趣的:(汇编语言-王爽实验10-题1显示字符串)