鱼C论坛

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

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

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

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

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

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

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



zd segment
    db,0
zd ends



dmd segment

start:mov ax,sjd
      mov ds,ax   ;字符及字符颜色的数据段段地址b87c0
          mov ax,0B872H    ;第11行第一个字节的段起始地址
          mov es,ax   ;es为存放地址的起始段地址
          mov bx,0    ;存放字符地址偏移量
          mov dx,0    ;调取字符代码的偏移量
          mov si,0    ;调取颜色代码的地址偏移量
          mov di,0    ;存放字符地址的行偏移量
          mov ax,0
      mov cx,3
          
   s0:push cx 
          mov cx,16
   s1:mov al,ds:0[dx]
          mov es:[bx+di],al 
          mov al,ds:16[si]
          mov es:[bx+di+1],al
          inc dx
          add bx,2
          loop s1
          
          mov dx,0
          mov bx,0
          inc si
          add di,160
          pop cx
          loop s0
          
          mov ax,4c00h
          int 21h
          
dmd ends
end start 





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

使用道具 举报

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

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

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

stack segment para stack 
        dw 800h dup(00)
stack ends

code segment para public 'CODE'
main proc far
        mov ax , data
        mov ds , ax
        mov ax , 0B800H            ; 显存段起始地址
        mov es , ax                ;
        mov si , offset message
        mov di , 160 * 10 + 2 * 31 ; 从 11 行,31 列 开始显示
        mov cx , 3                 ;
        mov bx , offset color
m1:     push si                    ;
        push di                    ;
        push cx                    ;
        cld
m2:     lodsb
        or al , al
        jz m3
        stosb
        mov al,byte ptr ds:[bx]
        stosb
        jmp short m2
m3:     pop cx
        pop di
        pop si
        add di , 160
        inc bx
        loop m1
        xor ax,ax
        int 16h 
        mov ax,4c00h
        int 21h
main endp
code ends
end main
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 13:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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