这个程序为什么看不到结果
assume cs:code,ss:stack,ds:datastack segment stack
db 02h,24h,71h ;属性字节存放在堆栈段,方便用bp索引,本程序不用担心堆栈被覆盖
db 13 dup(0)
stack ends
data segment
db 'welcome to masm!' ;字符串,用si索引 0~15
data ends
code segment
start: mov ax,0b800h
mov es,ax ;初始化ES段,位于显存空间
mov ax,stack
mov ss,ax
mov sp,16 ;初始化栈段
mov ax,data
mov ds,ax ;初始化数据段
mov bx,1984 ;bx的起始地址,第12行32列
mov bp,0 ;bp初始化,指向数据段第一个属性字节
mov cx,3 ;外层循环变量
s1: push cx ;入栈保护cx
mov si,0 ;si指向第0个字符
mov di,0
mov ah, ;将属性字节暂存到ah
mov cx,16
s2: mov al,
mov es:,al ;通过al,装入ascii码字节内容
inc di ;di+1,指向属性字节
mov es:,ah ;装入属性字符
inc di ;再次di+1,指向下一个字符的ascii码字节
inc si
loop s2 ;内层循环,对一行写入16列
inc bp ;bp+1,对应下一行属性字节
add bx,160 ;bx指向下一行
pop cx ;cx出栈
loop s1 ;外层循环
mov ax,4c00h
int 21h
code ends
end start
用debug的g命令跳到程序出口,就能看到显示结果
如果直接执行,直接返回dos,什么都看不见
why? 根系统有一定关系,直接运行可能系统进行了清屏操作,,我在dosbox下显示了! 哦 谢谢楼上的,是不是win7不适合玩汇编,
老出错,害我改程序
这个程序我改了2个小时,还是显示不出来
看了你的图,才知道我的程序没问题,真是郁闷 因为运行完了,运行到程序返回就退出咯。
你可以这样
mov ah,7
int 21h ;//暂停
mov ax,4c00h
int 21h
页:
[1]