dosbox 下运行TC 编译的EXE文件 有 BGI Error:Graphics not initialized (use 'initgraph')

dosbox 下运行TC 编译的EXE文件 有 BGI Error:Graphics not initialized (use 'initgraph'),第1张

initgraph()函数的第三个参数就是"c:\\tc30\\bgi",而不是在windows环境下的绝对路径

需要修改源代码的 initgraph(&devices,&mode,"c:\\tc30\\bgi"); /图形模式初始化/

我的dosbox tc 路径为以上 不知楼主的路径略有不同

把dosboxconf 复制一个 , 改名为koeiconf

然后用文本编辑器打开koeiconf

文件的最后写入

[autoexec]

# Lines in this section will be run at startup

mount c d:\san3

c:

koei

存盘退出

再创建一个指向dosbox的 快捷方式

打开快捷方式的属性

在目标中修改为: F:\DOSBox\dosboxexe -conf "\koeiconf"

注意 上面那句话的路径是我机器上的路径,你的要使用你的Dosbox的路径, 下次直接执行这个 快捷方式就能自动开始了

你的masm程序文件夹在D:\masm

那么进入cmd 先输入 cd D:\masn 之后 在用masmexe 和linkexe

方法二 把你的masm里边的文件全部放入C:\WINDOWS\system32 里 以后就可以直接masm link了

(1)

assume cs:code

code segment

Main: mov ax,cs

mov ds,ax

mov si,offset lp

mov ax,0

mov es,ax

mov di,200H

mov cx,offset Over-offset lp

cld

rep movsb

mov word ptr es:[7cH],200H

mov word ptr es:[7cH+2],0

mov ax,0b800H

mov es,ax

mov di,16012

mov bx,offset s-offset se

mov cx,80

s: mov byte ptr es:[di],'!'

add di,2

int 7ch

se: nop

mov ax,4c00H

int 21H

lp: push bp

mov bp,sp

dec cx

jcxz lpret

add [bp+2],bx

lpret: pop bp

iret

Over: nop

code ends

end Main

(2)

assume cs:code

code segment

Main: mov ax,cs

mov ds,ax

mov si,offset Begin

mov ax,0

mov es,ax

mov di,200H

mov cx,offset Over-offset Begin

cld

rep movsb

mov word ptr es:[7cH],200H

mov word ptr es:[7cH+2],0

mov ax,4c00H

int 21H

Begin: push ax

push es

push bx

mov ax,0B80AH

mov es,ax

mov bx,0

_Loop: mov byte ptr es:[bx],dl

mov byte ptr es:[bx+1],2

add bx,2

loop _Loop

pop bx

pop es

pop ax

iret

Over: nop

code ends

工具介绍:DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。目前,DOSBox 已经支持在 Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行。不少DOS下的游戏都可以直接在该平台上运行。

运行DOSXBOX之後

Z:\ >mount c c:\masm5 按下ENTER

键入

C:\ 按下ENTER(此时的DOSBOX中的C磁盘就是masm5的文件夹了)

问题是:从一开始你就失败了。

从你的提示可以看出:

第一条命令 masm 1asm执行是失败的,系统提示:无法打开1asm文件。

可能的原因是你的1asm放在别的文件夹,当前目录中没有这个文件。

既然1asm都没有打开,当然也肯定不可能生成1obj

此后第二条命令 link 1 当然肯定也失败,因为没有1obj这个文件存在

第三条命令 debug 1 错,也是因为没有 1 这个文件

tcc 命令行里设置一个参数

比如编译Helloc,并将其obj、exe输出到d:pan

用语句: tcc -nd:\ Helloc即可

注意‘-nd:\’之间不能有空格哦

以上就是关于dosbox 下运行TC 编译的EXE文件 有 BGI Error:Graphics not initialized (use 'initgraph')全部的内容,包括:dosbox 下运行TC 编译的EXE文件 有 BGI Error:Graphics not initialized (use 'initgraph')、怎样编写批处理 使DOS程序在dosbox下运行、DOSBOX win7 64位 不能运行汇编程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9618663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存