w应该在屏幕的中央啊 为什么到距离屏幕的上边是11行而不是12行
assume cs:codedata segment
db 'welcome to masm'
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
mov ax,0b800h
mov es,ax
mov bp,0
mov cx,12
s:add bp,00a0h
loop s
mov al,ds:
mov es:,al
mov byte ptr es:,00000001b
mov ax,4c00h
int 21h
code ends
end start
w应该在屏幕的中央啊 为什么到距离屏幕的上边是11行而不是12行 是不是算的时候出错了? 3-3 发表于 2017-9-9 22:36
是不是算的时候出错了?
没有啊 我执行12次循环 把bp付值到b4 h应位于中央啊 为啥 距离屏幕上边是11行而不是12行呢 本帖最后由 3-3 于 2017-9-9 22:49 编辑
是算的问题,你用计算器算一下,第12行的首地址应该是b8780h,你算出来的是多少? 我是在第12行得到结果了。 3-3 发表于 2017-9-9 22:45
是算的问题,你用计算器算一下,第12行的首地址应该是b8780h,你算出来的是多少?
我debug了一下,w是被移到了13行,即bp执行12次循环后是780,但为什么屏幕上显示的是在12行呢
第十三行的首地址是b8780把
什么意思?W为什么被移到了13行? 780h = 0a0h * 0ch xiaochen 发表于 2017-9-9 23:01
第十三行的首地址是b8780把
那是第12行的地址 第一行为B8000
第二行为B80A0
B8140
B81E0
B8280
B8320
B83C0
B8460
B8500
B85A0
B8640
B86E0
B8780
对,是显示的第13行。这里你要考虑到屏幕的刷新。你调试的时候可以看一下,在完成你的exe之后,屏幕又增加了一行命令行。 3-3 发表于 2017-9-9 23:37
对,是显示的第13行。这里你要考虑到屏幕的刷新。你调试的时候可以看一下,在完成你的exe之后,屏幕又增加 ...
明白了 谢谢啊
页:
[1]