|
7鱼币
连续输出3行字符试了几次都做不到,所以写了输出一行字符的。但是编译失败提示什么溢出
assume cs:code,ds:data
data segment
db 'welcome to masm!'
db '2h,24h,71h' \颜色的值\
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0b800h \第一个要输出字符的地址\
mov ss,ax
mov si,720h
mov di,0
mov bx,0
mov ax,16
mov cx,ax
s:mov ss:[si][bx],ds:[di] \将字符送入对应地址\
inc di
inc bx
mov ax,16
mov ss:[si][bx],ds:[ax] \将颜色值送入对应地址\
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
|
最佳答案
查看完整内容
嗯...,你犯了一个严重的错误啊!两个内存的值是不能相互传递的,必须通过AX来进行传递,以下的代码编译没问题,你看一下:
assume cs:code,ds:data
data segment
db 'welcome to masm!'
db '2h,24h,71h' ;颜色的值
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0b800h ;第一个要输出字符的地址
mov es,ax
mov si,720h ...
|