初学汇编 做的不好 但是能用:
assume cs:code
data segmentdb 'welcome to masm! ',0
data ends
code segment
start: mov dh,8;line
mov dl,3;column
mov cl,2;color
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
show_str: push cx ; show_str(dh:line,dl:colum,cx:color,ds:[0]-ds:['0'])
push si
push bx
push ax
push dx
mov ax,0b800h
mov es,ax ;display seg mem
mov al,160
dec dh
mul dh; ATTENTION:ax==the offest address of character
mov bx,ax;ax is used to another multiple
mov al,2
mul dl
sub ax,2
add bx,ax
mov si,bx
mov bx,cx;cx is used for both loop and color, therefore use unsed bx to store color
;step 1:
; first fill color information in mem
push si
s1: mov ch,0
mov cl,ds:[di]; sourse data
jcxz ok0
mov es:[si+1],bx
add si,2
inc di
loop s1
ok0:
mov di,0
pop si
;step 2:
;fill other spaces with ASCII code
s2: mov cl,ds:[di]
jcxz ok1
mov bl,ds:[di];
mov es:[si],bl;
add si,2
inc di
loop s2
ok1: pop dx
pop ax
pop bx
pop si
pop cx
ret
code ends
end start
本文介绍了初学者如何使用汇编语言进行编程实践,通过简单的示例代码展示了汇编语言的基本语法和应用,包括字符串显示、颜色控制等功能。旨在帮助初学者理解汇编语言的核心概念并提高编程技能。
1049

被折叠的 条评论
为什么被折叠?



