又是一个很有意思且比较坑爹的问题!
这俩图是我在做实验九的时候偶然发现的我把题改了,原题是在中间显示,我自己改成在第一行显示
然后再DATE段直接把要显示的子的ASCLL码和属性全写进去了,多了不说,上代码
花屏的代码:
assume cs:codesg,ds:date
date segment
db 'w',00000010B,'e',00000010B,'l',00000010B,'c',00000010B,'o',00000010B,'m',00000010B,'e',00000010B,'c',00000010B,'o',00000010B,'m',00000010B,'e',00000010B,'m',00000010B,'a',00000010B,'s',00000010B,'m',00000010B
date ends
codesg segment
start:mov ax,date
mov ds,ax
mov bx,0
mov ax,0B800h
mov es,ax
mov cx,15
s: mov ax,
mov es:,ax
add bx,2
jcxz ok
jmp short s
ok: mov ax,4c00h
mov ah,1
int 21h
codesg ends
end start
这段代码加不加mov ah,1都一样,全是花屏
不花屏代码:
assume cs:codesg,ds:date
date segment
db 'w',00000010B,'e',00000010B,'l',00000010B,'c',00000010B,'o',00000010B,'m',00000010B,'e',00000010B,'c',00000010B,'o',00000010B,'m',00000010B,'e',00000010B,'m',00000010B,'a',00000010B,'s',00000010B,'m',00000010B
date ends
codesg segment
start:mov ax,date
mov ds,ax
mov bx,0
mov ax,0B800h
mov es,ax
mov cx,15
s: mov ax,
mov es:,ax
add bx,2
loop s
mov ax,4c00h
mov ah,1
int 21h
codesg ends
end start
这段代码中必须要mov ah,1
不加不再屏幕上显示welcome to masm @康小泡泡姐来看看{:9_240:} 我也debug 过,但是查显存的时候根本不行,,而且在debug过程中能正常返回 哈哈哈哈= =我的错我的错,看书不精细,我以为jxzc自带减1功能。。。@康小泡 最后mov ah,1是干嘛的??? 表示看不懂
:sad 我该怎么学习,我想要學 木觞 发表于 2015-10-29 13:53
表示看不懂
我该怎么学习,我想要學
请百度优酷 搜索汇编语言小甲鱼 点专辑第一个 轮着看把 看我就有基础了 mov ax,0B800h
这条语句是什么意思 zlming 发表于 2015-10-29 20:39
mov ax,0B800h
这条语句是什么意思
把显存地址给AX,目的是为了给ES寄存器
zlming 发表于 2015-10-29 20:39
mov ax,0B800h
这条语句是什么意思
把这个值赋值到ax里,h代表16进制,,,,不知道对不对:big
页:
[1]