实验九的作业
asume CS:dmd,ds:sjd,ss:zd es:cfdzsjd 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
mov es:,al
mov al,ds:16
mov es:,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’三行颜色不一样 不用在意文字颜色颜色是按照自己喜好乱写的跟作业要求可能不一样 本帖最后由 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 db41h,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:
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
页:
[1]