分析:
这个程序用到了这章大部分知识,请仔细阅读本章内容。还有用到了上一个实验的知识点。
如果你了解了以上两点,这道题目将很容易就敲出来了。
需要知识点:(书上都有)
1、行和列的计算和颜色的了解
2、jcxz的用法
3、call和ret的用法
4、怎样判断0
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start:
mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
show_str: ;其实这是一个子程序,里面是包含s和ok的,这样理解容易些
mov al,160
mul dh
mov bx,ax
mov al,2
mul dl
add bx,ax ;计算出行和列加起来的偏移量
mov ax,0B800h
mov es,ax ;es:[bx]为要输入的显示区
mov al,cl ;先将cl中的颜色数值显示出来
mov ch,0 ;ch前半段要为0,因为用不上,避免判断0s
s: ;判断是否为0,否就输入到显示区
mov cl,[si]
jcxz ok
mov es:[bx],cl
mov es:[bx+1],al
add bx,2
inc si
jmp short s
ok: ;返回
ret
code ends
end start
本文介绍了一个MASM编程实例,详细展示了如何使用MASM指令来显示字符串,并解释了关键的汇编语言概念,如行和列的计算、颜色设置、jcxz、call和ret指令的用法。

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



