|
20鱼币
这道题按小甲鱼老师的打的,也能运行到色彩字符,但是使用debug调试有两点不明白:
1.闪烁的字体说要全屏才可以看,但是我全屏了,没有闪烁,用 “Masm for Windows 集成实验环境 2015” 运行也是一样没有闪烁,这是什么原因? 见图片1111
2.调试过程中,使用-D指令查看ES段,里面数值有变化但是看不懂规律,没有把al对应的值给对应es:[di]的偏移地址,这是什么意思? 见图片2222
希望懂的师兄不吝赐教,感谢!!!
assume cs:codesg, ds:datasg, ss:stacksg
datasg segment
db 'welcome to masm!'
db 02h, 24h, 71h
datasg ends
stacksg segment
dw 8 dup(0)
stacksg ends
codesg segment
start:
mov ax, datasg
mov ds, ax
mov ax, stacksg
mov ss, ax
mov sp, 10h
xor bx, bx
mov ax, 0b872h
mov cx, 3
s3: push cx
push ax
push bx
mov es, ax
mov si, 0
mov di, 0
mov cx, 10h
s1: mov al, ds:[si]
mov es:[di], al
inc si
add di, 2
loop s1
mov di, 1
pop bx
mov al, ds:10h[bx]
inc bx
mov cx, 10h
s2: mov es:[di], al
add di, 2
loop s2
pop ax
add ax, 0ah
pop cx
loop s3
mov ax, 4c00h
int 21h
codesg ends
end start
mov ax, 4c00h
int 21h
codesg ends
end start
本帖最后由 人造人 于 2018-12-9 23:06 编辑
问题1:闪烁要在实模式下才能看到(纯DOS)
问题2:显存中的数据和屏幕上的内容一一对应
看右边的 "AL,[SI]"
是不是太眼熟了?
看图片的上面
"076D:0023 8A04 MOV AL,[SI]"
我再说一次: 显存中的数据和屏幕上的内容一一对应
|
-
-
最佳答案
查看完整内容
问题1:闪烁要在实模式下才能看到(纯DOS)
问题2:显存中的数据和屏幕上的内容一一对应
看右边的 "AL,[SI]"
是不是太眼熟了?
看图片的上面
"076D:0023 8A04 MOV AL,[SI]"
我再说一次:显存中的数据和屏幕上的内容一一对应
|