linha0 发表于 2011-7-4 21:49:33

我的实验10的第一题!

本帖最后由 linha0 于 2011-7-4 21:52 编辑

assume cs:code,ds:data

data segment
db 'welcome to masm!',0                        ;共16个ASCII码字符,16个字节
data ends

rgb segment

db 00000010b;0、黑底绿字
db 01000010b;1、红底绿字
db 01110001b;2、白底蓝字
db 00100100b;3、绿底红字
db 11000010b;4、红底闪烁绿字
db 01001010b;5、红底高亮绿字
db 00000111b;6、黑底白字

db 32 dup (0)    ;存放CX,用于多重循环
rgb ends

code segment
start:
                mov ax,data
                mov ds,ax
                mov ax,rgb
                mov ss,ax
                mov sp,30h
                mov ax,0b800h                              ;显示缓冲区的段地址
                mov es,ax
                ;以上初始化各段
               
                ;测试1
                mov bp,4                                 ;设置字体颜色编号
                mov dh,0                                 ;设置行号(共25行)
                mov dl,0                                  ;设置列号(共80列)
               
                call show_str
               
                ;测试2
                mov bp,6                              ;设置字体颜色编号
                mov dh,6                              ;设置行号(共25行)
                mov dl,30                               ;设置列号(共80列)
               
                call show_str
               
                mov ax,4c00h
                int 21h
               
show_str:
                mov al,0a0h
                mul dh                                 ;计算行数的实际地址
                mov di,ax
               
                mov al,2h
                mul dl                                    ;计算列数的实际偏移地址
                add di,ax
               
                mov ah,                        ;取色
               
                mov bx,0
                mov si,0
                mov ch,0
      s:      mov cl,
                jcxz ok
                mov al,cl                               ;取字
                mov es:,ax                ;显示字符.
               
                inc si
                add bx,2
                jmp short s
               
      ok:      ret
code ends
end start与书本不的题目要求略有不同。预先把一些颜色的二进制值存储在段中。

Cocol 发表于 2013-7-1 22:44:52

看看老帖,学习学习
页: [1]
查看完整版本: 我的实验10的第一题!