《汇编语言》第二版 实验9
实验9在屏幕中间分别显示绿色,绿底红色,白色蓝底的字符串’welcome to masm!’别人的程序
assume cs:code,ds:data,es:tabledata segment db 'welcome to masm!'data endstable segment dw 4000 dup (0)table endscode segmentstart: mov ax,data mov ds,ax mov ax,0b800h mov es,ax mov bx,0 mov si,0 mov cx,16 s0:mov ax, mov es:,ax mov al,2 mov es:,al inc bx inc si loop s0 mov bx,0 mov cx,16 mov si,160s1:mov ax, mov es:,ax mov al,36 mov es:,al inc bx inc si loop s1 mov bx,0 mov cx,16 mov si,320s2:mov ax, mov es:,ax mov al,113 mov es:,al inc bx inc si loop s2 mov ax,4c00h int 21hcode endsend start课本上说的是低位字节存放的是ASCII码值,高位字节存放的是值的属性。既然如此这里为什么是mov al,2h呢?还有小甲鱼老师的也是存放在al里面,实在是想不通啊!最后我的执行了这个程序没有得到预期的结果,具体是这样的 当我执行这个程序的是后dos只是闪一下 然后就没有了,屏幕上没有什么变话,这又是为什么啊!我的系统是w7旗舰版的,会不会是和系统有关啊?请求各位看一看啊 瞧一瞧啊感激不尽
查看中,请稍等 本帖最后由 LinuxDeepin 于 2013-10-1 21:07 编辑
这是由于其显示速度太快 ,导致你看不到。
加个显示的死循环你就看得到了。
注意,如果你的计算机是单核CPU的,要谨慎运行,防止卡死
源代码插入修改如下:
assume cs:code,ds:data,es:table
data segment
db 'welcome to masm!'
data ends
table segment
dw 4000 dup (0)
table ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
f: mov bx,0 ;;此处设置 f 标号
mov si,0
mov cx,16
s0:mov ax,
mov es:,ax
mov al,2
mov es:,al
inc bx
inc si
loop s0
mov bx,0
mov cx,16
mov si,160
s1:mov ax,
mov es:,ax
mov al,36
mov es:,al
inc bx
inc si
loop s1
mov bx,0
mov cx,16
mov si,320
s2:mov ax,
mov es:,ax
mov al,113
mov es:,al
inc bx
inc si
loop s2
jmp short f ;; 跳转到 f 标号处,死循环
mov ax,4c00h
int 21h
code ends
end start
LinuxDeepin 发表于 2013-10-1 21:02 static/image/common/back.gif
这是由于其显示速度太快 ,导致你看不到。
加个显示的死循环你就看得到了。
注意,如果你的计算机是单核C ...
灰常感 谢:big 轻拿轻放 发表于 2013-10-1 23:12 static/image/common/back.gif
灰常感 谢
我今天刚好学到这一章,实验九的代码写好了,你可以看看我写的与他写的区别在哪里
地址:
http://bbs.fishc.com/thread-38488-1-1.html 学习一下。。。。 支持一下。。好好学 LinuxDeepin 发表于 2013-10-1 23:21 static/image/common/back.gif
我今天刚好学到这一章,实验九的代码写好了,你可以看看我写的与他写的区别在哪里
地址:
http://bbs.f ...
感谢了啊!终于弄出来了,我的
电脑是w7的 所以显示不出来 后来装了个xp虚拟机 ,果断的科学了!3q,3q baby520 发表于 2013-10-4 20:58 static/image/common/back.gif
支持一下。。好好学
哟西哟西 学习一席哈 路过看看哈
页:
[1]