就是要努力呀 发表于 2020-4-28 18:20:52

实验9

本帖最后由 就是要努力呀 于 2020-4-28 18:31 编辑

assume cs:code, ds:data, ss:stack

data segment
        db 'welcome to masm!'        ;16字节
        db 02h        ;黑底绿字
        db 24h        ;绿底红字
        db 71h        ;白底蓝字
data ends

stack segment
        dw 0
stack ends

code segment
start:
                mov ax, data        ;设置数据段
                mov ds, ax
               
                mov ax, stack        ;设置栈段
                mov ss, ax
                mov sp, 2
               
               
                mov ax, 0b8a0h        ;设置显存
                mov es, ax
                mov bp, 010h        ;设置从第10行开始显示
               
                mov di, 16                ;设置字符属性的内存单元偏移地址
               
                mov cx, 3                ;设置外层循环,每一次循环打印一串'welcome to masm!'
                s0:
                        mov bx, 0        ;归零字符的内存单元偏移地址
                        mov si, 50        ;设置每一行的字符串再同一列
                        mov dl, ds:                ;设置文字属性
                        inc di
                       
                        push cx
                       
                        mov cx, 16        ;设置内层循环,每一次循环打印一个字符
                        s1:
                                mov al, ds:
                                mov es:, al        ;将字符的ascii码放入低位显存空间
                                inc si
                                mov es:, dl        ;将字符属性放入高位显存空间
                                inc bx
                                inc si
                        loop s1
                       
                        add bp, 0a0h        ;向下移动一行
                       
                        pop cx
                loop s0
               
                mov ax, 4c00h
                int 21h
code ends

end start
页: [1]
查看完整版本: 实验9