关于实验9,我到底哪里错了?求助!更新了新写的第二段代码还是不行!!!
本帖最后由 xxasy 于 2011-6-30 08:34 编辑assume cs:code,ds:data
data segment
db'welcome to masm! ','2h,24h,71h',0,0
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov di,0
mov si,0
mov bx,0
mov ax,data
mov ss,ax
mov sp,0
add sp,22
mov cx,3
s: push cx
mov cx,16
s1: mov al,byte ptr ds:
mov ah,byte ptr ds:
mov es:,ax
add bx,2
inc si
loop s1
inc di
add bx,128
pop cx
loop s
mov ax,4c00h
int 21h
code ends
end start
我到底哪里错了?为什么debug看不到字体的颜色什么的?
我又从新写了一遍。。编译通过,可以运行。单步调试。被机器给踢出来了。貌似动了微软的奶酪了。到底怎么个情况啊。。
assume cs:code,ds:data,cs:stack
data segment
db'welcome to masm!'
db'02h,24h,71h'
data ends
stack segment
dw 8 dup (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov di,0
mov ax,0b872h
mov cx,3
s: push cx
push ax
mov bx,0
mov si,0
mov es,ax
mov cx,16
s1: mov dl,ds:
mov dh,ds:
mov es:,dx
inc si
add bx,2
loop s1
pop ax
add di,1
add ax,0Ah
pop cx
loop s1
mov ax,4c00h
int 21h
code ends
end start
谢谢大家。 楼主 我想是第22行那吧你怎么能用呢这样的话 当你第二次循环得到的就是24 第三次就是71第四次就是0然后又是0 接着就无法预测了、、、、 循环逻辑上出现错误,我也是第一次回答,回答不好请见谅!
显示颜色地址的变量只需要增加3次,你放入了s1的循环中,你看下你cx的值为16,16的循环是索引字母的,不能和颜色变量放在一起!{:1_1:} 本帖最后由 king嗜血法师 于 2011-6-30 01:20 编辑
loop s1
pop ax
add di,1
add ax,0Ah
pop cx
loop s1
第2个loop 跳到s 不是 s1
你的代码可以优化一下,把es不加到循环试试,可以省去push ax了
页:
[1]