|
1鱼币
debug单步不能运行,点EXE可以运行,程序是在屏幕上显示不同颜色的字符串,但是泥没有在屏幕上显示字符 请各位大神帮下忙,想了很久没解决,,
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 02h,24h,71h ;定义颜色属性
data ends
stack segment
dw 8 dup(0) ;为了让CX放栈 定义栈空间, 好像定义大了,
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h ;指向栈顶
xor bx,bx ;bx清0 bx作用索引代码段的下一个字符
mov ax,0B800h ;0B800H为了字符显示在屏幕上 内存地址空间中,B8000H~BFFFFH的空间,为80*25彩色字符显示在缓冲区
mov es,ax
mov di,0 ;di作用,指向或存入下在个0B800H的显存地址
mov si,0 ;si 指向下一个颜色属性
mov dx,0
mov cx,3 ;最外层循环3次,
s: push cx
mov cx,10h ;最内层循环10次,
s1: mov al,ds:[bx]
mov es:[di],al
inc di ;di作用指向下一个,把ds:[bx]值,拷贝进去
inc bx ;bx作用代码段ds:[bx] 的值加1
mov al,ds:[16+si] ;指向代码段的,(db 02h,24h,71h)02H 颜色属性,
mov es:[di],al
inc di
loop s1
inc si ;颜色属性加1 指向(db 02h,24h,71h) 24H
pop cx ;出栈还原CX,最外层的值;
loop s
mov ax,4c00h
int 21h
code ends
end start
|
|