鱼C论坛

 找回密码
 立即注册
查看: 1202|回复: 1

[汇编作业] 实验九的作业

[复制链接]
发表于 2022-10-12 23:11:22 | 显示全部楼层 |阅读模式

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

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

x
  1. asume CS:dmd,ds:sjd,ss:zd es:cfdz

  2. sjd segment
  3.     db'welcome to masm!' ;定义要显示的字符共16个字节
  4.         db 41h,24h,14h   ;分别为红底蓝字,绿底红字,蓝底红字的颜色码
  5. sjd ends



  6. zd segment
  7.     db,0
  8. zd ends



  9. dmd segment

  10. start:mov ax,sjd
  11.       mov ds,ax   ;字符及字符颜色的数据段段地址b87c0
  12.           mov ax,0B872H    ;第11行第一个字节的段起始地址
  13.           mov es,ax   ;es为存放地址的起始段地址
  14.           mov bx,0    ;存放字符地址偏移量
  15.           mov dx,0    ;调取字符代码的偏移量
  16.           mov si,0    ;调取颜色代码的地址偏移量
  17.           mov di,0    ;存放字符地址的行偏移量
  18.           mov ax,0
  19.       mov cx,3
  20.           
  21.    s0:push cx
  22.           mov cx,16
  23.    s1:mov al,ds:0[dx]
  24.           mov es:[bx+di],al
  25.           mov al,ds:16[si]
  26.           mov es:[bx+di+1],al
  27.           inc dx
  28.           add bx,2
  29.           loop s1
  30.           
  31.           mov dx,0
  32.           mov bx,0
  33.           inc si
  34.           add di,160
  35.           pop cx
  36.           loop s0
  37.           
  38.           mov ax,4c00h
  39.           int 21h
  40.           
  41. dmd ends
  42. end start
复制代码






好心人帮忙看一下  实验九的作业  电脑编译显示无法打开masm ,帮忙看看有没有错误  错在哪里   要求是三行‘welcome to masm’  三行颜色不一样   不用在意文字颜色  颜色是按照自己喜好乱写的  跟作业要求可能不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-12 23:42:58 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-12 23:47 编辑

        编译一下这个代码看看可不可以通过,我这里 WinXP + MASM 5.10B 可以成功编译
  1. assume cs:code , ds:data

  2. data segment para public 'DATA'
  3. message db  'welcome to masm ! ' , 00h ; 定义要显示的字符共16个字节
  4. color   db  41h,24h,14h    ; 分别为红底蓝字,绿底红字,蓝底红字的颜色码
  5. data ends

  6. stack segment para stack
  7.         dw 800h dup(00)
  8. stack ends

  9. code segment para public 'CODE'
  10. main proc far
  11.         mov ax , data
  12.         mov ds , ax
  13.         mov ax , 0B800H            ; 显存段起始地址
  14.         mov es , ax                ;
  15.         mov si , offset message
  16.         mov di , 160 * 10 + 2 * 31 ; 从 11 行,31 列 开始显示
  17.         mov cx , 3                 ;
  18.         mov bx , offset color
  19. m1:     push si                    ;
  20.         push di                    ;
  21.         push cx                    ;
  22.         cld
  23. m2:     lodsb
  24.         or al , al
  25.         jz m3
  26.         stosb
  27.         mov al,byte ptr ds:[bx]
  28.         stosb
  29.         jmp short m2
  30. m3:     pop cx
  31.         pop di
  32.         pop si
  33.         add di , 160
  34.         inc bx
  35.         loop m1
  36.         xor ax,ax
  37.         int 16h
  38.         mov ax,4c00h
  39.         int 21h
  40. main endp
  41. code ends
  42. end main
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 14:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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