龙龙 发表于 2015-6-22 03:12:59

汇编作业 实验10(1)

  
  assume cs:code
  data segment
  db 'Welcome to masm!', 0
  data ends
  code segment
  start:
  mov dh, 8; 从第8行开始显示
  mov dl, 3; 从第3列开始显示
  mov cl, 2; 字体颜色为绿色
  mov ax, data
  mov ds, ax
  mov si, 0; 字符串的首地址
  call show_str
  mov ax, 4c00H
  int 21H
  show_str:
  push ax
  push bx
  push bp
  push cx
  push si
  push di
  push es
  mov bl, cl    ; 字体颜色存在bl中
  mov ax, 0b800H
  mov es, ax    ; 显示缓冲区的段地址存在es
  mov ax, 0a0H
  mul dh      ; 计算第n行的首地址
  mov bp, ax    ; 将第n行的首地址存在bx
  mov ax, 2
  mul dl      ; 计算第n列的偏移地址
  mov di, ax    ; 将第n列存在di
  ctom:
  mov ch, 0   ; 判断是否到字符串结尾
  mov cl,
  jcxz exit   ; 结尾则结束
  mov es:, cl ; 存储字符
  inc di
  mov es:, bl ; 存储字符属性
  inc si
  inc di
  jmp short ctom
  exit:
  pop es
  pop di
  pop si
  pop cx
  pop bp
  pop bx
  pop ax
  ret
  code ends
  end start
页: [1]
查看完整版本: 汇编作业 实验10(1)