来人帮我看哈 哪错了 急急急。。。。。
显示第25行 ,第51行, 第63行 错了 代码如下 ,右边表好了行号 大家帮我看看assume cs:code,ss:stack
stack segment
db 256 dup (0)
stack ends
code segment
start:
mov al,1;0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行
mov bl,1;0~7表示8中不同颜色
call setscreen
mov ax,4c00h
int 21h
setscreen: jmp ssstart
tabledw cls,sc,sbc,froll
tcolordb 00000000b,00000001b,00000010b,00000011b,
00000100b,00000101b,00000110b,00000111b
tbcolordb 00000000b,00010000b,00100000b,00110000b,
01000000b,01010000b,01100000b,01110000b
ssstart:
mov ah,0
add ax,ax
call word ptr table ;第25行
ret
cls:
push ax
mov ax,0b800h
mov ds,ax
mov bx,0
mov cx,2000
clsloop1: mov byte ptr ,' '
add bx,2
loop clsloop1
pop bx
pop cx
pop ds
pop ax
ret
sc:
push ax
mov ax,0b800h
mov ds,ax
pop ax
mov al,bl
mov ah,0
mov bx,1
mov cx,2000
scloop1: mov byte ptr ,byte ptr tcolor ;第51行
add bx,2
loop scloop1
ret
sbc:
push ax
mov ax,0b800h
mov ds,ax
mov al,bl
mov bx,1
mov cx,2000
sbcloop1: mov byte ptr ,byte ptr tbcolor ;第63行
add bx,2
loop sbcloop1
ret
froll:
mov ax,0b800h
mov ax,ds
mov si,160
mov ax,0b800h
mov es,ax
mov di,0
mov cx,24*160
cld
rep movsb
ret
code ends
end start
完整程序没细看,单就那几行:
25行看不出错误
51、63行内存之间的数据传递应通过寄存器中转 我昨天把他该成BX貌似就好了,,,【address】中应该只能用BX,或者SI,或者DI才能定址,,谢谢你。。。 tsembrace 发表于 2013-10-14 10:26 static/image/common/back.gif
完整程序没细看,单就那几行:
25行看不出错误
51、63行内存之间的数据传递应通过寄存器中转
你说的是对的 今天又出错了 按你说的就好了 谢谢 啊啊 看来已经解决了。
页:
[1]