64位操作系统下8086环境搭建方案探究
2017-12-15李海玲
李海玲,孟 虎
(西安航空学院 计算机学院,陕西 西安 710077)
64位操作系统下8086环境搭建方案探究
李海玲,孟 虎
(西安航空学院 计算机学院,陕西 西安 710077)
基于PC机的Windows操作系统,微软不断升级。大量的微机从Windows XP逐渐升级为Win7、win8、win10,而且采用了64位的Windows操作系统。很多汇编语言编译器或汇编软件包在32位系统中使用正常,但在64位操作系统上对汇编语言源程序只能编辑,不能运行。为了解决该问题,经过多次研究实践,提出了两种解决方案。
64位操作系统;8086环境;汇编语言编译器;汇编软件包
0 引言
微型计算机的应用已广泛渗透到当今社会各领域,从科研、生产、国防、文化、教育、卫生直至家庭生活,都离不开计算机提供的服务。随着计算机技术的发展,微软公司不断升级其基于PC机的Windows操作系统,大量的微机从Windows XP逐渐升级为Win7、win8、win10,系统类型从32位发展到64位。因此,原先在32位操作系统中使用正常的汇编语言编译器或汇编软件包,在现今的64位操作系统上不能运行。
1 8086环境搭建原因
微型计算机的发展是以微处理的发展为特征的,目前使用的CPU有好几家公司的产品,其中intel是生产CPU的老大哥,它占有80%多的市场份额。而intel处理器的发展从最早的4位扩展到现在的64位,从单核发展到多核,功能越来越强,速度越来越快,同时微机的原理也越来越复杂。
“微机原理与接口技术”课程是国家教育部规定的计算机专业、电子信息专业、自动化专业、机电一体化专业等工科专业的专业基础课程[1],本课程的教学长期以8086/8088微机系统及其接口作为学习的基本内容。课程主要内容之一的处理器8086/8088是intel的一款16位处理器,在CPU发展到64位的今天,选择8086/8088学习仍然具有很大的重要性和必要性。
1.1 内容的典型性和完整性
经过长期的发展,计算机的应用已渗透到各行各业,遍布社会生产生活的方方面面。尤其是PC机的发展,IBM选择了8088作为IBM PC的微处理器,从此开创了PC时代。面对有限的教学学时,现代PC机所涉及的原理和接口技术在一门课程中是无法讲述完整的,而IBM PC教学模型机,则可以把8086/8088系统讲述完整。
1.2 良好的兼容性及其原理的可延伸性
8086/8088处理器的存储结构和指令集在intel x86的历代处理器中被完整保留了下来,无论是32位还是64位x86,都有8086兼容的工作模式,可以做到对8086代码的二进制兼容。虽然现代处理器无论其制造工艺还是技术性能,都有了很大改进和提高,但从编程角度看,仍然属于同一系列,且完全兼容,并无本质区别。
1.3 知识的完整及新技术、新课程的开放性
知识结构完整,技术开放,课程内容更新和拓展的空间大,作为能力培养,容易触类旁通。8086/8088系统的技术资料全面详细,非常容易被找到,便于学习。现代PC中的内容都是8086微机原理与接口技术中的技术升级,掌握这些基础内容,很容易迁移到32位x86系统,举一反三[2]。
汇编语言是建立在计算机底层的硬件层面,基于CPU基本指令系统,且直接面向CPU及其硬件系统的程序设计语言。熟练掌握汇编语言,更有利于深入理解计算机系统底层的硬件工作原理以及针对计算机接口控制的软件运行流程[3]。然而,随着系统的升级换代,用汇编语言编写的程序在32位操作系统中的汇编语言编译器或汇编软件包中能正常运行,但在64位操作系统中只能编辑程序却不能运行程序,鉴于此,本文给出了两种解决方案。
2 解决方案
要解决该问题,可以从两方面考虑。第一,在当前64位操作系统中运行32位操作系统,原先的汇编语言编译器或汇编软件包就能正常工作;第二,找到能在64位操作系统中直接运行的汇编语言编译器或汇编软件包。前者通过现在的虚拟机[4]技术可以实现,后者需要对大量的汇编语言编译器或汇编软件包进行实践测试验证。
2.1 安装VM软件
VM(Virtual Machine)虚拟机是一个“虚拟PC”软件。它可以在一台机器上同时运行两个或更多Windows、DOS、LINUX系统。VMWare是真正在主系统平台上“同时”运行多个操作系统,就像标准Windows应用程序那样进行切换[5]。该软件不需要分区或重新开机就能在同一台计算机上使用两种以上的操作系统。它完全隔离了另外的操作系统,并且保护不同类型的操作系统的操作环境以及所有安装在操作系统上面的应用软件和资料,可在不同的操作系统之间相互操作,包括网络、周边、文件共享以及复制、粘贴等多种功能,还能够随时设定修改操作系统的操作环境,如:内存、磁盘空间、周边的设备等等。
美国VMWARE公司开发的一款称为VMware的虚拟机,它支持在WINNT/2000环境下运行如Linux等其它操作系统,它作为原操作系统下的一个应用程序可以为运行于其上的目标操作系统创建出一部虚拟的机器。Intel公司在奔腾芯片上提供了一个虚拟8086模式,使得在奔腾CPU上也可以运行老的MS-DOS程序。在此模式下,奔腾机如同8086计算机,包括1M字节内的16位寻址方式,虚拟8086模式被Windows,OS/2及其他操作系统用于运行MS-DOS程序[6]。为进行汇编语言编程学习,在64位操作系统中,首先安装虚拟机,然后可以安装winxp操作系统或win7 32位系统,再安装运行汇编语言的汇编语言编译器或汇编软件包,即可搭建好8086/8088运行环境。应用虚拟机软件技术,使汇编语言编程面向虚拟的、统一的硬件及其接口,保证实验环境的统一性,提高了实验效率[7]。
“微机原理与接口技术”课程需要使用汇编语言进行程序设计,并且随着FPGA技术和SOC技术的发展,教学也做到与时俱进,不断改革创新。由于8086/8088系统的HDL描述完整透明,可以在单片FPGA上重构8086/8088系统,使教学内容更易于与SOC技术整合,从而提高教学成效,开拓实用领域。在这个过程中,正确编写汇编语言程序只是其中的一部分内容。基本过程是先在虚拟机中编写汇编语言源程序并编译,功能实现无误后转换成需要的文件格式,然后在本机将文件下载到FPGA中观察结果,这样做一次实验需要在本机和虚拟机中进行切换,增加了操作难度。
2.2 安装Masm for Windows 集成实验环境
对于汇编语言的编程,利用虚拟机可以在64位操作系统上运行,但操作步骤较多,加大了使用难度,对初学者来说不易上手,影响学习兴趣及效果。为帮助学习者更方便的编程操作,经过对多个汇编编译软件的测试验证,终于找到一个可以支持64位操作系统的软件,即Masm for Windows 集成实验环境。
它是一个对汇编语言初学者非常合适的简单易用的汇编语言学习与实验软件,支持32位与64位的Windows7,支持DOS的16/32位汇编程序和Windows下的32汇编程序,而且提供调试通过的多个Windows汇编程序实例源代码,它具有错误信息自动定位,关键字实时帮助,并且在帮助中动画演示汇编指令的执行过程、语法着色、无限次撤消与恢复、WORD式的查找、替换、定位、支持中文、长文件名等功能。使用该软件,可以在本机直接进行汇编语言程序编程及验证,操作简单,易于使用,方便学习。
3 结语
计算机技术的发展促使微软公司的操作系统不断升级,原先在32位操作系统中使用正常的汇编语言编译器或汇编软件包,现在64位操作系统上不能运行。针对此问题,本文介绍了两种8086环境的解决方案,前者不论是Windows系统还是Linux系统,都能适用,只是操作上稍微复杂。后者支持Windows 64位系统,使用简单方便,从而为汇编语言程序设计的学习提供帮助,进而为“微机原理与接口技术”课程基于FPGA的SOC技术的学习提供支持。
[1] 李海玲.汇编语言程序设计方法研究[J].福建电脑,2009,25(11):209,191.
[2] 潘松,潘明,黄继业.微机原理与接口技术:基本原理、实用技术和基于FPGA的SOC技术[M].北京:清华大学出版社,2015:1-11.
[3] 钱晓捷.基于Windows环境的汇编语言程序设计[M].北京:清华大学出版社,2012:1-12.
[4] 何增颖.虚拟机技术的实验教学应用[J].实验科学与技术,2010,8(1):80-82,87.
[5] 董耀祖,周正伟. 基于X86架构的系统虚拟机技术与应用[J].计算机工程,2006,32(13):71-73.
[6] 廖华赟.X86可视虚拟机的研究与实现[D].广州:广东工业大学,2005.
[7] 张雪兰,谭毓安,李元章.汇编语言程序设计课程教学改革与创新能力培养[J].计算机教育,2008,68(8):144-145.
[责任编辑、校对:东 艳]
Exploration of 8086 Environment in 64-bit Operating System
LIHai-ling,MENGHu
(School of Computers,Xi′an Aeronautical University,Xi′an 710077,China)
Microsoft continues to escalate its windows operating system based on PC,and a large number of microcomputers gradually upgrade from windows XP to win 7,win 8,win 10,with 64 - bit windows operating system.Many assembly language compilers or assembly software packages run normally in 32-bit operating system but abnormally in 64-bit operating system since the assembly program can only be edited and not be compiled.In order to solve this problem,after much exploratory practice,this paper introduces two solutions.
64-bit operating system;8086 environment;assembly language compiler;assembler software package
2017-04-07
西安航空学院科研基金项目(2017KY0207);西安航空学院高等教育研究项目(2017GJ1012)
李海玲(1980-),女,陕西西安人,讲师,主要从事基于FPGA的SOC技术方面的教学和研究。
TP313
A
1008-9233(2017)03-0091-03