鱼C论坛

 找回密码
 立即注册
查看: 1936|回复: 0

[汇编作业] 实验10(1)

[复制链接]
发表于 2020-3-17 15:43:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 雪球丶 于 2020-3-17 15:49 编辑
  1. assume cs:code
  2. data segment
  3.         db 'welcome to masm!',0
  4. data ends

  5. code segment
  6. start:
  7.                 mov dh,8                ;行号
  8.                 mov dl,3                ;列号
  9.                 mov cl,2                ;颜色
  10.                 mov ax,data
  11.                 mov ds,ax
  12.                 mov si,0                ;ds:[si]字符串首地址
  13.                 call show_str
  14.                
  15.                 mov ax,4c00h
  16.                 int 21h
  17.                
  18. show_str:
  19.                 mov ax,0b800H        ;显存地址
  20.                 mov es,ax
  21.                 ;计算像素点索引 8行3列  像素点索引=8*160+3*2
  22.                 add dl,dl
  23.                 mov al,dh
  24.                 mov bl,160
  25.                 mul bl                        ;计算出来的行号存储在ax中
  26.                
  27.                 mov dh,0
  28.                 add ax,dx               
  29.                 mov di,ax                ;像素写索引
  30.                 mov dh,cl                ;先用dl记录下颜色值,后面直接用dx寄存器写显存;CX寄存器在循环中会被用到,释放cl
  31.         ws:                                        ;写显存
  32.                 mov dl,ds:[si]
  33.                 mov es:[di],dx
  34.                 inc si
  35.                 add di,2
  36.                 ;查看下一位是否为0
  37.                 mov cx,0
  38.                 mov cl,ds:[si]
  39.                 jcxz wd                        ;若下一位为0,则跳转到wd处
  40.                 mov cx,2                ;给CX赋值,如果程序走到这里说明下一位不为0就让其不断循环继续往下写
  41.                 loop ws
  42.         wd:        ret
  43.                
  44. code ends
  45. end start
复制代码

10-1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-9 19:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表