标签:汇编 jmp 位置 现在 code call 一个 star ascii码
1.显示字符串
问题:编写一个通用的子程序来实现该功能
子程序名称:show_str
功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串
参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79),(cl)=颜色,ds:si指向字符串的首地址
返回:无
应用举例:在屏幕的8行3列,用绿色显示data段中的字符串。
内存地址中有一80*25彩色字符模式显示缓冲区的结构,地址空间为:B8000H~BFFFFH,共32KB。向这个地址空间写入数据,写入的内容就会立即出现在显示器上。
80*25表示显示器可以显示25行,每行80个字符,每个字符可以有256中属性(背景色、前景色、闪烁、高亮等组合信息)。每个字符在显示缓冲区中占有两个字节,分别存放字符的ASCII码和属性。在
8*25模式下,一屏的内容在显示缓冲区中共占4000个字节。
1 assume cs:code, ds:data, ss:stack 2 data segment 3 db ‘Welcome to masm!‘, 0 4 data ends 5 6 stack segment 7 db 16 dup (0) 8 stack ends 9 10 code segment 11 start : mov dh, 8 12 mov dl, 3 13 mov cl, 2 14 mov ax, data 15 mov ds, ax 16 mov ax, stack 17 mov ss, ax 18 mov sp, 16 19 mov si, 0 20 call show_str 21 22 mov ax, 4c00h 23 int 21h 24 25 show_str: push cx 26 mov ax, 0b800h 27 mov es, ax 28 mov di, 1124 29 s : mov cl, [si] 30 mov ch, 0 31 jcxz ok 32 mov es:[di], cl 33 inc di 34 pop cx 35 mov es:[di], cl 36 push cx 37 inc si 38 inc di 39 jmp s 40 ok : pop cx 41 ret 42 code ends 43 end start
标签:汇编 jmp 位置 现在 code call 一个 star ascii码
原文地址:https://www.cnblogs.com/hl249853856/p/11838021.html