转换16位DOS .com程序集以在64位上使用 [英] Converting 16-bit DOS .com assembly for use on 64-bit

查看:98
本文介绍了转换16位DOS .com程序集以在64位上使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在32位Windows XP的平面汇编程序中编写了一些汇编程序.但是,由于我现在拥有64位Windows 8,因此我无法运行.com文件,因为它们似乎与64位版本不兼容(程序为32位).

I wrote few programs in assembly in flat assembler for 32bit windows xp. But now that I have 64bit windows 8 I can't run the .com files, as they appear to be incompatible with 64bit version (the programs are 32bit).

我如何转换它以便也可以在win8中运行它?也许使用其他汇编程序?

How do I convert it so I can run it in win8 as well? Maybe use a different assembler?

我想避免使用仿真器和虚拟机.

I'd like to avoid the need for emulators and virtual machines.

推荐答案

.com文件为16位.您可以使用32位指令和寄存器,但这是16位代码.一旦将64位CPU置于长模式",它就不支持vm86(XP用来运行.com文件).怪AMD,而不是MS(这次).使用仿真器(DosBox等)或将代码转换为32位(应在64位OS上运行)

A .com file is 16-bit. You can use 32-bit instructions and registers, but it's 16-bit code. A 64-bit CPU, once it's put in "long mode", does not support vm86 which is what XP uses to run .com files. Blame AMD, not MS (this time). Use an emulator (DosBox, etc.) or convert your code to 32-bit (which should run on a 64-bit OS)

这篇关于转换16位DOS .com程序集以在64位上使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆