码迷,mamicode.com
首页 > 编程语言 > 详细

汇编语言-王爽-实验10

时间:2019-11-11 21:11:36      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:汇编   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

 

  

汇编语言-王爽-实验10

标签:汇编   jmp   位置   现在   code   call   一个   star   ascii码   

原文地址:https://www.cnblogs.com/hl249853856/p/11838021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!