andyup 发表于 2016-2-24 04:59:33

第三版 第9章 实验9

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

data segment
   db 'welcome to masm'
   db 01000010B
   db 01110001B
   db 01110001B
data ends

stack segment
   dw 8 dup(0)
stack ends

code segment
start:mov ax,data
          mov ds,ax;定义数据段
          mov ax,stack
          mov ss,ax
          mov sp,16;定义栈段
          mov ax,0b800h
          mov es,ax;定义显示缓冲区段
          mov si,15;定义字符属性开始位置
          mov cx,3;循环3次 输出3行
          l1:push cx
             mov ah,;读取字符属性
             mov bx,0;初始化位置
               mov di,0;初始化位置
             mov cx,15;循环15次 输出15个ASCII码
             l2:mov al,;读取ASCII码
                  mov es:,ax;写入后输出到显示器
                  inc bx
                        add di,2
               loop l2
             inc si;切换属性
               mov cx,es
               add cx,10
               mov es,cx;切换显示缓冲区段 每行160字节 等于换行
             pop cx
          loop l1

          mov ax,4c00h
          int 21h
code ends
end start
页: [1]
查看完整版本: 第三版 第9章 实验9