名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
;参数:(dh)=行号(取值范围0~24)
; (dl)=列号(取值范围0~79)
; (cl)=颜色,ds:si指向字符串的首地址
;返回:无
应用举例:在屏幕的8行3列,用绿色显示data段中的字符串.
ome to masm!',0
data ends
stack segment
db 16 dup (0)
stack 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:
mov ax,stack
mov ss,ax
mov sp,16
push cx
mov ax,0b800h
mov es,ax
mov di,0
mov al,0a0h
mul dh
mov bx,ax
mov al,2
mul dl
add bx,ax
mov di,bx
s: mov cl,ds:[si]
mov ch,0
jcxz ok
mov es:[di],cl
pop cx
mov es:[di+1],cl
push cx
inc si
add di,2
jmp short s
ok: ret
code ends
end start
- [xiaoyao2012] 终于有人来看了 哈哈 11/19 15:20
- [chinatree] 不要哗众取宠,没看到强在哪,浪费那么严重,一条指令能完成的事非要花2条甚至3条。 11/19 13:21
- [fpamc] 对的。 11/05 08:32
- [fpamc] 对的。 11/05 08:30
- [xiaoyao2012] 程序加载后我理解的是不执行程序 如果程序执行返回前就该是CODE=X DATA=X-2 STACK= 11/03 17:40
- [xiaoyao2012] 程序加载后 DS=17D7 SS=17E7 CS=17E9 加入加载后CODE=X 那么SS=X-2 11/03 15:35
- [fpamc] 对的。 10/31 19:52
- [fpamc] 对的。 10/31 19:51
- [fpamc] 这两者不冲突。你可以先用人力做出来。然后在debug理解下运行过程。并且可以对照下是否作对。 10/30 21:18
- [fpamc] 对的。 10/30 21:17
[ chinatree 发表于 2012-11-19 13:21 ]
不要哗众取宠,没看到强在哪,浪费那么严重,一条指令能完成的事非要花2条甚至3条。
[ xiaoyao2012 发表于 2012-11-19 15:20 ]
终于有人来看了 哈哈