首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

关于用汇编语言进行图形编程,该如何处理

2012-02-22 
关于用汇编语言进行图形编程很想知道如何用汇编语言进行图形编程主要有哪些问题需要解决我的主要目的是用

关于用汇编语言进行图形编程
很想知道如何用汇编语言进行图形编程
主要有哪些问题需要解决
我的主要目的是用汇编写出3D动画来,其中存在些问题,希望各位大大提点哈...
这里有个程序

data segment 
kk dw 500 dup(?)
xys db 'i love you',13,10,'$'
error1 db 'error!let us work hard!',13,10,'$'
data ends

stack segment
yy dw 1000 dup(?)
stack ends

code segment
assume ds:data,ss:stack,cs:code,es:data

start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
main proc near
mov ah,00h
mov al,62h

int 10h
lea dx,xys
mov ah,09
int 21h
mov ah,0
int 16h
in al,60h
cmp al,1
jne start
mov ax,4c00h
int 21h
ret

main endp


code ends

  end start
主要是设置显示器的分辨率为800*600或者1024*768模式下,进行图形编程..
可是现在连一个字符都显示不了...我用INT 10H调用,如果把AL设置为13H,就可以进行320*200 256色下的字符显示...但是现在...在高分辨率下到底有什么问题呢?
请各位大大帮忙检查下,看看是哪里有问题啊.....
还有就是请帮忙提供点关于这方面的资料啊...
拜托了..先谢谢了..呵呵


[解决办法]
“调用21H或10H显示一个字符都办不到”就是因为扩展图形模式不是一定支持BIOS输出的(DOS的输出也是调用BIOS INT 10h)。
资料可以先下载这个:
http://www.vesa.org/Public/VBE/vbe3.pdf

[解决办法]
http://ebook.pc120.net.cn/programme/AssembleLanguage/200609/852.html
[解决办法]
使用INT 10H设置VESA模式需要Video Bios与主板Bios配合,对于不同的机器,不一定都能实现
我将楼主程序改动了一下,你可以试一下:
assume ds:data,cs:code
data segment
xys db 'will you go out?'
data ends 

code segment 
start: 
main proc far 
mov ax,data 
mov ds,ax 

;设置VESA显示模式,800*600 16色
mov ax,4f02h 
mov bx,102h ;另外还有模式103H,113H,114H,115H,你可以分别试试看
int 10h 

call line ;画线
call string ;显示字符串

;程序返回处理,按任意键退出
mov ah,1
int 21h
mov ax,0003h
int 10h
mov ax,4c00h 
int 21h 
ret 
main endp 

line proc near
mov cx,100 
mov dx,50 
back: 
mov ah,0ch 
mov al,0ffh 
int 10h 
inc cx 
cmp cx,200 
jnz back 
ret 
line endp 

string proc near
mov bp,data
mov es,bp 
mov bp,offset xys 
mov ax,1300h
mov bl,41h
mov cx,10h
mov dx,0
int 10h 
ret 
string endp 

code ends 
end start 

热点排行