当前位置:文档之家› Windows 64 位平台上试行8086汇编的各种办法

Windows 64 位平台上试行8086汇编的各种办法

Windows 64 位平台上试行8086汇编的各种办法
Windows 64 位平台上试行8086汇编的各种办法

Windows 64 位平台上试行8086汇编的各种办法

——212班特供,雪松菌敬上

本学期的课里有一门汇编语言设计,雪松菌估计也就是8086程序设计。看好,8086,经常玩单机游戏的娃可能会明白,所谓8086构架,最高的拓展也就是……32位windows!

这样一来,按照某些过时的教科书上的方法写一个汇编程序,在64位的Win7下运行,就会出现……

而且安装某教材介绍的方法,进行汇编的Debug的话……就会……

坑爹呐!

本菌本着让大家少费事的心,特别给大家写一篇关于如何在Win7下运行8086程序的方法!并且打包了一本我认为相当不错的汇编入门级教材,希望大家努力学习,期末不挂科!

(有人对我说:直接制作一个DOS启动盘进DOS不就行了?雪松菌要说的是……你得考虑我们广大人民群众的接受能力和DOS盲的用户。虽然作为8086的原生支持非保护平台,DOS才是8086汇编开发的正道,虽然Windows下很多底层的指令不能运行。但是,咱不就是为了了解,学习一下嘛!)

经过雪松菌亲测,一共有两种办法,一种简易,适合新手们使用,另一种麻烦,但能接触到汇编的实质和过程(本菌在用这一种办法)。下面呢,先给大家介绍第一个,简单的办法!

一、Emu8086在Windows7 X64下的优化配置

不管啥时候,IDE总是程序员的利器。关于各种编程神器的传说数不胜数。同样,汇编语言也有自己的IDE,你比如MASM32,RadASM,TASM等等……但是,天怒

人怨的是,以上这些在Win7 x64下统统滴不好使!

雪松菌览遍各大网站,做过无数测试,终于找到了一款能支持64位Win7汇编的软件,他的名字,便是汇编界大名鼎鼎的Emu8086。

本菌会在本文档的最后附上此软件的下载地址,各位按需下载!自行搜索的请注意一定要4.06版以上才能支持64位Win7。

安装过程不再赘述,请看同软件包下我给的文档!

写程序,运行,一切完美,还能运行时debug,查看堆栈,爽的紧!

注意:本软件安装完成之后呢,会有一个小问题,就是当你在本IDE中编辑源码的时候会出现文字变形的情况……

看着让人心烦!

解决方法也简单,只要在Option(选项)->set Font(字体设置)中选择“仿宋”字体即可。

好了,第一种方式介绍完了,只想学一点皮毛的孩纸们可以绕道跳过下面,直接到最后了!

二、手动调用UtralEdit+MASM+DosBox

这是个笨办法,但是乐趣在其中,比较适合我这样习惯了UtralEdit等记事本编程的童鞋们和技术渣们!

首先呢,UtralEdit和MASM以及DosBox的安装我就不多废话了,大家随意,下载地址同样附在最后。

首先呢,先对DosBox进行安装,安装完成了之后,启动,界面如图

注意,这两个窗口是一体的,不要随意关闭任何一个!

在前面这个有着蓝框框的窗口中就可以输入DOS命令了!

在我附加的教材中有一个Debug程序的介绍,实话说,这个工具简直太棒了!在我附加的程序里也有Debug程序,将他下载下来,比如保存到你机器D:\ASM\目录下,你需要在DosBox中使用如下命令

mount c d:/

c:

cd ASM

如下图:

然后运行Debug,就可以随心所欲的调用debug了!怎么样,方便吧!下面是用r 命令查看寄存器。

至此,我们的8086汇编语言的运行环境也已经搭建完成了,怎么样,有没有触类旁通什么?对了……上面提到在Win7 x64下不能运行的32位程序,可以将它用DosBox打开呀!当然,要用命令行!(技术渣们应该懂我在说什么)

下一步,我们要把Win7下的编译连接工具都搞定,这里呢,本菌给大家推荐的是微软的MASM编译器(PS一下下:不要跟我说我上面说过MASM32不能用,看清楚,MASM32是MASM的爱好者们自发编写的一个IDE,而MASM只是一个微软出的编译器!这里给大家的是6.15版,我觉得比5.0版要稳定得多!)

首先呢,将他解压到任意目录,这里呢,我解压到了D:\ASM\bin\,然后呢,为了在任意位置都能运行,在“计算机”上右击->属性->高级系统设置->环境变量->系统变量中找到Path变量,点编辑

然后不要删除原来的(!!!千万不要删除原来的!!!),在变量值的最前面添加上你的MASM的目录+分号+debug的目录+分号,例如我的就是“D:\ASM\bin\;D:\ASM;”确定,再确定~~好吧,想起什么来了?没错,JDK的安装也是这个过程。

好了,这下子在电脑的命令提示符中(不是DosBox!这两个东西只是看着像而已!),运行ml,你会看到如下界面

这就证明编译环境已经配好了!

到这里,一个简易的编译运行环境已经搭建好了,但是~~我们追求的是完美!

于是乎,一个程序员神器——UtralEdit出场了!

安装好后,原装的UtralEdit是不支持汇编语言的语法高亮的,但是呢,咱能添加啊!安装好我给的UtralEdit 18.2.0,并将和UtralEdit同压缩包的asm167.new文件保存到如下目录

%appdata%\IDMComp\UltraEdit\Wordfiles\

将上面地址复制在地址栏中粘贴然后打开,不要以为你存在program file(x86)

目录下找到的UtralEdit目录是正确的,那就是一个幌子……一定要用上面的地址!

才能正确的保存(雪松菌被这个东西坑的无语了,最后查官网文档才发现的!)。关

于UtralEdit 15.0版本一下的添加语法高亮的方法请自行百度,这里不再赘余。

然后,当当当当,一个牛叉无比的UtralEdit诞生了!

然后呢,由雪松菌再来给大家介绍一下用这种方法进行汇编语言开发的整体的流

程……

1、在UtralEdit中编辑源码文件,并保存为.asm扩展名

2、在命令提示符中进入ASM的文件保存目录,执行ml ***.asm命令,当然,你

也可以分着执行make和link指令,这里不多说,书上有。生成***.exe文件(***

是你的文件名)

3、进入DosBox,并且运行挂载命令: mount c d:/

这其中d:/视情况而定,看你保存在哪里了。

4、然后用cd命令进入源程序目录,可以直接打文件名执行比如t2.exe,也可以

进行debug工作,命令是debug t2.exe。

到此,方法结束。

第二种办法在某些人眼中看起来有点傻缺,确实,有点费劲,但是呢,重在折腾!

享受编程带给你的乐趣可不是简简单单的一个IDE就能解决的!不亲身经历,从来

不会有收获。

附录:文中用到的工具软件及资源下载

我的百度云网盘

https://www.doczj.com/doc/bb14617262.html,/share/link?shareid=321764&uk=2097618625

基于Windows平台的个人防火墙设计论文

基于Windows平台下的个人防火墙设计 摘要 网络安全问题长期威胁着网络终端用户,需要有有效的安全工具解决这个问题,个人防火墙就是其中的一种常用的安全工具。为了实现个人防火墙软件,选用VC++ 6.0开发工具。软件系统主要包括两项工程,一是核心模块设计,即DLL 工程,实现了封包截获、管制动作和协议封包的解析任务,主要利用Winsock 2 SPI技术实现网络封包截获,之后利用控管规则对过往封包进行合法性检查和过滤,方法是首先利用Winsock 2 SPI技术建立winsock钩子,用它来截获winsock 的调用,然后作出相应动作处理,动作处理需通过控管规则的检查后,确定socket 连接是否允许通过,其中控管规则由用户层设置;二是用户模块设计,即EXE工程,实现用户界面和负责与DLL模块的通信,提供了3个主要界面,即封包监视、控管规则、控管规则设置。最后通过测试和应用,基本解决了终端用户的网络连接安全问题。 关键词:过滤;动态连接库;Winsock 2 SPI;网络封包;协议封包

The Design of the Personal Firewall Based on Windows Abstract The terminal users of network are always threaten by the problems of security of network,so we need a effective tool to solve this problem.The personal firewall is one of the common tools of security. VC++ is selected to implement the personal firewall.The system has two projects mainly. One of the projects is the design of core module which can be called the project of DLL.This project implements behaviors of management and the analysis of packets of protocols. The technology of Winsock 2 SPI is used to capture of pakcets of network. After that, then the checking and filtering of the packets are done using the rules of control and management. At the beginning, the control rules build up the Hook of winsock which is used to capture the tranfer of winsock,and then it implements relative behaviors.The link of socket will be or not get through checking by the rules of control and management. The rules of control and management are set by the layer of user.Then, we should design the module of user which can be called the project of exe. It implements the interface of user and the module of communication with DLL. It provides three main interfaces, they are the watching of filtering packet, the rules of control and management and the setting of rules of control and management. Finally, it has solved the requirement of security of terminal users after the final testing and application. Key words:Filter;DLL;Winsock 2 SPI;Network packets; Protocol packets

32位汇编语言程序设计上机指导

《32位汇编语言程序设计》上机指导 《32位汇编语言程序设计》上机指导 (1) 实验一建立windows环境下32位汇编语言开发环境 (2) 实验2 指令格式与寻址方式 (4) 实验3 数据操作编程 (5) 实验4 分支和循环程序设计 (6) 实验5 子程序设计 (8) 实验6 输入输出程序设计 (9) 实验7:字符串操作 (10) 实验8:宏结构设计 (11) 实验9:混合编程 (12) Windows环境下32位汇编语言开发环境的建立 (13) 调试程序Windbg (19) 宏汇编命令ML和连接命令LINK常用参数速查 (22) 输入输出宏命令 (23)

实验1 建立windows环境下32位汇编语言开发环境 实验目的:建立windows环境下32位汇编语言开发环境,并熟悉它的使用方法。 实验要求:(1)建立windows环境下32位汇编语言开发环境; (2)熟悉自己建立的开发环境的使用方法; (3)熟悉调试工具的使用 实验内容:(1)定制masm32集成开发环境,使之符合教学要求。 (2)分别建立汇编,连接,和汇编&连接批处理命令,能够生成包含调试信息的目标文件,列表文件,以及能够进行调试的可执行WIN32控制台程序。 (3)建立16位和32位汇编语言框架程序。 (4)在自己建立的开发环境下汇编,连接,运行教材中的例3-1和例3-2。 实验步骤: 1、安装开发环境 运行《32位汇编语言程序设计》教材配套开发环境软件“开发工具.exe”,将MASM32安装在根目录下(例如:c:\masm32)。接着运行Exmasm32.exe,将其它软件安装在masm32的目录下(例如:c:\masm32)。建立masm32文件夹中的qEditor.exe和Windbg.exe桌面快捷方式。 2、定制开发环境 修改文件msm32\bin\buildc.bat中的内容,使得执行Project\Console Assemble & Link后能够汇编连接可调试的32位控制台应用程序,同时生成列表文件。 汇编命令改为: \masm32\bin\ml /c /coff /Fl /Zi “%1.asm” 连接命令改为: \masm32\bin\link /debug “%1.obj” 1、建立汇编连接16位应用程序的批处理文件make16.bat 建立汇编连接16位应用程序的批处理文件make16.bat,可以用于汇编连接可调试的实模式应用程序,同时生成列表文件。 make16.bat的主要内容: \masm32\bin\ml /c /Fl /Zi "%1.asm" \masm32\bin\Link16 /debug "%1.obj" 4、建立适合在定制开发环境下使用的32位应用程序框架 .386 ;必须是第一条非注释语句,说明这是一个32位应用程序 .model flat, stdcall ;定义程序的存储模式(32位应用程序中必须采用flat) include \masm32\include\io32.inc ;可选,如果在程序中使用作者自定义的宏命 令需要这一句 .stack 4096 ;定义堆栈段 .data ;定义数据段 ……;数据定义 .code ;定义代码段 start: ;程序起始点 ……;程序代码 ret ;程序结束点,返回WINDOWS ……;子程序代码 end start ;汇编结束

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

《基于windows平台的网络构建》课程实践教学改革

《基于windows平台的网络构建》课程实践教学改革摘要:该文就《基于windows平台的网络构建》课程实践教学存在的问题进行探讨,并提出改进思路与方法,提高学生运用windows 平台进行网络组建和网络服务管理的职业技能。 关键词:windows平台网络构建实践教学改革 Abstract:The problems of “construct the network base on windows platform” practice teaching discussed in this arti cle,and the proposed improvement ideas and methods to improve the students to use the windows platform network formation and network service management vocational skills. Key word:windows platform network building practice teaching reform 1课程概况 掌握并应用windows服务系统是中小型企业从事网络建设和网络管理的核心技能之一,涉及IP规划、路由和远程访问服务、DHCP、流媒体等内容。在windows服务的实际应用中,企业往往部署了windows自带的服务(如DNS、WEB)和其他服务生产商的产品(如ServU、Helix),《基于windows平台的网络构建》课程教学内容包含windows server系统管理和服务管理、主流应用服务的配置与管理、

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

基于windows平台的基本网络测试工具实验

基于windows平台的基本网络测试工具实验 1 、实验目的 1 )了解网络命令行的使用。 2 )熟练掌握ping 命令、netstat 命令、ipconfig 命令、arp 命令tracert 命令、route 命令、nbtstat 命令、net 命 令的操作使用。 2 、实验环境 一台装有Windows 2000 Server 的联网计算机。 3 、实验原理 一般网络命令的原理就是在建立连接通道,然后发送一些测试数据包对方接受后返回信息,而这个返回数据包包含一些网络状况的相关信息。 4 、实验要求 1 )熟悉掌握ping 命令操作。 2 )熟悉掌握netstat 命令操作。 3 )熟悉掌握ipconfig 操作。 4 )熟悉掌握arp 命令操作。 5 )熟悉掌握tracert 命令操作。 6 )熟悉掌握route 命令操作。 7 )熟悉掌握nbtstat 命令操作。 8 )熟悉掌握net 命令操作。 5 、实验步骤 常见网络命令实验操作都在windows2000 的DOS 窗口中操作,如下图:

? Ping 命令 Ping 命令用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,就可以推断TCP/IP 参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP 配置就是正确的,必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP 的正确性。 ? 简单的说,Ping 就是一个测试程序,如果Ping 运行正确,大体上就可以排除网络访问层、网卡MODEM 的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping 也被某些别有用心的人作为DDOS (拒绝服务攻击)的工具,前段时间Y ahoo 就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping 数据报而瘫痪的。 ? 按照缺省设置,Windows 上运行的Ping 命令发送4 个ICMP (网间控制报文协议)回送请求,每个32 字节数据,如果一切正常,应能得到4 个回送应答。 ? Ping 能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping 还能显示TTL (Time To Live 存在时间)值,可以通过TTL 值推算一下数据包已经通过了多少个路由器:源地点TTL 起始值(就是比返回TTL 略大的一个 2 的乘方数)- 返回时TTL 值。例如,返回TTL 值为119 ,那么可以推算数据报离开源地址的TTL 起始值为128 ,而源地点到目标地点要通过9 个路由器网段(128-119 );如果返回TTL 值为246 ,TTL 起始值就是256 ,源地点到目标地点要通过9 个路由器网段。 Ping 命令的常用参数选项: ? ping IP -t-- 连续对IP地址执行Ping 命令,直到被用户以Ctrl+C 中断。 ? ping IP -l 2000-- 指定Ping 命令中的数据长度为2000 字节,而不是缺省的32 字节。? ping IP -n-- 执行特定次数的Ping 命令。 ? Netstat Netstat 用于显示与IP、TCP 、UDP 和ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。如果计算机有时候接受到的数据报会导致出错数据删除或故障,不必感到奇怪,TCP/IP 可以容许这些类型的错误, 并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么就应该使用Netstat 查一查为什么会出现这些情况了。netstat 的一些常用选项: ? netstat -s-- 本选项能够按照各个协议分别显示其统计数据。如果应用程序(如Web 浏览器)运行速度比较慢,或者不能显示Web 页之类的数据,那么就可以用本选项来查看一下所显示的信息。需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。 ? netstat -e-- 本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。 ? netstat -r-- 本选项可以显示关于路由表的信息,类似于后面所讲使用route print 命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。

汇编语言程序设计教学大纲

《汇编语言程序设计》课程教学大纲 二、课程简介 汇编语言是计算机能够提供给用户使用的最快最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而,对程序的空间和时间要求很高的场合及需要直接控制硬件的应用场合,汇编语言的应用是必不可少三、课程目标 汇编语言课程是计算机专业的一门专业选修课。通过本课程的学习,应使学 生系统地了解计算机组成原理与内部的运行机理,掌握汇编语言程序设计及相关 知识,为学习本专业后继课程和进行与硬件有关的技术工作打下良好基础。通过 上机实验,使学生受到软硬件实验的初步训练,并培养学生分析问题和解决问题 的能力。 四、教学内容及要求 第一章基础知识 1.教学内容 (1) 为什么要用汇编语言编写程序 (2) 进位计数制与不同基数的数之间的转换 (3) 二进制数和十六进制数运算 (4) 计算机中数和字符的表示 (5) 几种基本的逻辑运算 2.基本要求 了解机器指令、代码指令、机器语言、汇编指令、汇编语言、汇编语言源程 序、汇编程序、汇编等概念;掌握进位计数制与不同基数的数之间的转换及

运算;计算机中数和字符的表示;“与”、“或”、“非”、“异或”等几种基本的逻辑运算; 第二章80X86计算机组织 1.教学内容 计算机系统概述、存储器、中央处理机和外部设备。 2.基本要求 理解计算机的硬件和软件系统及其关系。掌握计算机的基本结构及总线;存储器的内容、地址及存储器的分段;中央处理机的组成、80X86系列CPU工作寄存器构成和功能,特别是段寄存器和标志寄存器;外设接口、端口和8086/8088的端口地址范围和访问方法。 第三章80X86的指令系统 1.教学内容(重点内容) IBM PC机的寻址方式、IBM PC机的指令系统。 2.基本要求 熟练掌握IBM PC机寻址方式及物理地址的计算;数据传送、算术、逻辑、串处理、控制转移和处理机控制指令六组中的所有指令的格式、操作、及影响的标志位。了解机器语言的指令组成; 第四章汇编语言程序格式 1.教学内容 汇编程序功能、伪操作、汇编语言程序格式、汇编语言程序的上机过程。 2.基本要求 掌握DEBUG程序和命令及能用DEBUG 程序调试和运行简单小程序;汇编语言上机步骤、汇编程序的功能;数据定义及存储器分配、表达式赋值“EQU”和“=”、段定义、程序开始和结束、对准、基数控制等六类伪操作;汇编语言程序格式中的名字、操作、操作数和注释等项。 第五章循环与分支程序设计 1.教学内容 程序设计的一般步骤和基本结构、循环程序设计和分支程序设计 2.基本要求 掌握汇编语言程序的编制步骤和结构化程序设计的三种基本结构;循环的设计方法和多层循环的设计;分支程序的设计方法,并能编制相应的程序。第六章子程序结构 1.教学内容 子程序的设计方法、嵌套与递归子程序、子程序举例和DOS系统功能调用

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

汇编语言程序设计实验篇emu

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.doczj.com/doc/bb14617262.html, TEMPLATE程序 本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。 在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。 输入全部指令后,单击按钮,保存相应的程序段。 2.EXE TEMPLATE程序 本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。 在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

办公软件应用模块(WINDOWS平台)中级(考试大纲)

办公软件应用模块(WINDOWS平台)中级(考试大纲) 第一单元 Windows系统操作 10分 1.Windows操作系统的基本应用:进入Windows和资源管理器,建立文件夹,复制文件,重命名文件; 2.Windows操作系统的简单设置:添加字体和输入法。更改系统时间、日期,设置桌面背景、设置系统音量为静音、隐藏桌面图标。 第二单元文字录入与编辑 12分 1.新建文件:在文字处理程序中,新建文档,并以指定的文件名保存至要求的文件夹中。 2.录入文档:录入汉字、字母、标点符号和特殊符号,并具有较高的准确率和一定的速度。 3.复制粘贴:复制现有文档内容,并粘贴至指定的文档和位置; 4.查找替换:查找现有文档的指定内容,并替换为不同的内容或格式。 5.为文档设置编辑限制:仅允许在文档中填写窗体,保护密码为:*。 6.使用外部文件:插入声音文件、工作簿等。 7.转换文件格式。 第三单元格式设置与编排 12分 1.设置文档文字、字符格式:设置字体、字号,字形; 2.设置文档行、段格式:设置对齐方式、段落缩进、行距和段落间距; 3.拼写检查:利用拼写检查工具,检查并更正英文文档的错误单词; 4.设置项目符号或编号:为文档段落设置指定内容和格式的项目符号或编号。 5.设置中文版式:如加拼音等。 6.创建题注:在插图下方的图例位置创建题注。 7.创建书签。 8.创建目录:在文档首部创建目录,并设置目录格式。 第四单元表格操作 10分 1.创建表格并自动套用格式:创建一个新的表格并自动套用格式; 2.表格的行、列修改:在表格中交换行和列,插入或删除行和列,设置行高和列宽; 3.合并或拆分单元格:将表格中的单元格合并或拆分;

基于Windows平台的网络流量统计及控制系统的设计与实现

基于Windows平台的网络流量统计及控制系统的设 计与实现 夏义三 北京邮电大学信息工程学院,北京(100876) E-mail:bupt.ip@https://www.doczj.com/doc/bb14617262.html, 摘要:介绍了一种Windows平台下的针对个人微机的网络流量统计及控制系统的总体设计及各个功能模块的实现,给出了系统的架构、软硬件环境以及部分程序代码。 关键词:流量统计,流量控制,传输服务提供者 中图分类号:TP393 1. 引言 在网络管理过程中,网络流量监控是一个重要部分。有效的网络流量监控不仅能够让网络管理人员及时了解网络的运行状态,并且能够对网络出现的问题做出及时调整和排除。目前,绝大多数的网络流量监控系统都部署在一个网络的出口处,有串联和旁路两种方式,这是对全网流量进行统计和控制的常用方法。本文所讲的网络流量统计与控制系统立足于Windows平台的用户终端上,通过中央服务器进行控制,为企业网络管理员提供后台监控和保护敏感信息的手段,以便保障企业的网络运行和信息安全。本文对该系统的原理、设计进行了介绍和分析,并给出了一种切实可行的实现办法。 2. 系统的设计原理 在个人微机上实施网络流量统计与控制的方法有很多,可以在TCP/IP协议栈的多个层来实现。在各个层上实现的方法不同,实现的难度和执行情况也不同。本系统以COM技术为基础,综合运用了DOM,SPI等技术,采用插件式架构,具有低耦合,自更新的特点,适用于分布式网络。系统包括客户端和服务器两个部分,客户端实现流量统计和控制功能,服务器负责存储客户端上报的流量数据,以便管理员查询,管理员还可通过服务器下发具体的流量控制策略。 2. 1 客户端的设计原理 流量统计功能在TCP/IP协议栈的数据链路层实现,具体原理是建立一个原始套接字并将其绑定到网卡上,之后就可以通过该套接字的接收缓存获得经过网卡的数据包,从而进行流量的分析和统计工作。 流量控制功能在TCP/IP模型的应用层实现,具体原理是利用Windows系统的SPI(传输服务提供者接口)来截获上层应用程序所发的Winsock调用,Winsock调用包括WSPSocket、WSPCloseSocket、WSPBind、WSPAccept、WSPConnect、WSPSend、WSPSendTo、WSPRecv、WSPRecvFrom[1]。从这些Winsock调用中可以取得在该socket上进行发送和接收的数据,对这些数据进行分析处理,确定它们所属的业务类型及连接信息,将这些信息与从服务器端下发的流量控制策略匹配,得到控制动作,实施控制行为,从而实现流量控制的功能。

Windows平台上的串行通信简介 -电脑资料.

Windows平台上的串行通信简介 -电脑资料 2019-01-01 Windows平台上的串行通信简介 1.使用VC编程 利用VisualC++编写串行通信程序可借助于 API(ApplicationProgramInterface)函数, 。Windows9x及更高版本的通信函数为32位。涉及到串行通信的APl函数主要有以下几个: 打开通信资源(包括通信口)使用CreateFile(),通信资源被看成一个文件。该函数有7个自变量。 对通信口的设置涉及3个函数:SetupComm()使用来设置发送和接收缓冲区的大小;GetCommState()可用来获取串行通信设备控制块DCB结构的当前状态;SetCommState()用来对通信口进行自己的设置。 发送数据使用WriteFile()函数。 读接收到的数据使用ReadFile()函数。 清除通信错误并通信口当前状态使用ClearCommError()函数。 指示通信口进行某种扩充功能(如发送DTR信号)使用EscapeCommFunction()函数。 这些函数的说明可参看 VisualStudioMSDN(MicrosoftDeveloperNetwork), 《》()。 2.使用VIi编程 Visualc++3.0(VB)及以上的专业版、企业版都提供了一个通信控件,5.O 版本以后称之为MSComm。利用该控件可很方便地实现RS-232通信。 下面是一个很简单的程序示例,读者从注释中不难理解它的作用。这里假定事先已定义Comml为MSComm类型的对象。

Comml.CommPort=2指定Comml是COM2口 Comml.Settings="9600,n,8,l设置通信参数Comml.InputLen=0读取接收数据时,一次读取所有已收到的字符Comml.PortOpen=True打开COM2 Comml.DTREnable=True置DTR Comml.RTSEnable=True置RTS Comml.Output=TestCommunication发送一字符串 Do循环等待,直到接收到5个以上的字符为止 DoEvents此期间将控制权交还给Windows,以响应其他事件LoopUntilComml.InBufferCounter>=5 InString$=Comml.Input读收到的字符,赋给变量InString$

《基于windows平台网络构建》课程实践教学改革

《基于windows平台的网络构建》课程实践教学改革 摘要:该文就《基于windows平台的网络构建》课程实践教学存在的问题进行探讨,并提出改进思路与方法,提高学生运用windows平台进行网络组建和网络服务管理的职业技能。 关键词:windows平台网络构建实践教学改革 中图分类号:g420 文献标识码:a 文章编号:1674-098x(2012)12(b)-0-02 the curriculum practice teaching reform of”constructthe network base on windows platform” huangjunxian (guangdong communication polytechnic guangzhou.guangdong 510650) abstract:the problems of “construct the network base on windows platform” practice teaching discussed in this article,and the proposed improvement ideas and methods to improve the students to use the windows platform network formation and network service management vocational skills. key word:windows platform network building practice teaching reform 1 课程概况 掌握并应用windows服务系统是中小型企业从事网络建设和网络

8086 汇编语言中断程序设计

汇编语言程序设计实验报告 学院:计算机科学与技术专业:计算机科学与技术班级:计科131

LEA DX,FNAME MOV CX,0 ;语句1 INT 21H JC EXIT MOV FNUM,AX MOV BX,AX ;语句2 MOV CX,100 MOV AH,40H LEA DX ,BUF INT 21H MOV BX,FNUM MOV AH,3EH INT 21H EXIT: MOV AH,4CH INT 21H CODE ENDS END START 使用相应的文本编辑器建立文件LAB7.asm,内容如上所示。 2.汇编并运行此程序后,在当前目录建立的文件名是什么?其内容是什么? 1>汇编: C:\masm> masm lab7; 2>连接: C:\masm> link lab7; 3>运行: C:\masm> lab7 3.若将语句1 改为mov cx,1,则运行情况与前面会有什么区别? 4.若将语句1 改为mov cx,2,则运行结果同上会有什么不同?并简要说明此语句的作用. 5.若将语句2 改为mov bx,1,则运行结果会有什么不同?简要说明则语句的作用. 实验二:编写0 号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error!”,然后返回到DOS。源程序下: assume cs:code code segment start: mov ax,cs mov ds,ax

mov si,offset do mov ax,0 mov es,ax mov di,200h mov cx,offset doend-offset do ;安装中断例程cld rep movsb mov word ptr es:[0],200h mov word ptr es:[2],0 ;设置中断向量表 mov dx,0ffffh mov bx,1 ;测试一下 div bx mov ax,4c00h int 21h do:jmp short dostart db 'divide error!' dostart: mov ax,0 mov ds,ax mov si,202h mov ax,0b800h mov es,ax mov di,160*12+60 mov cx,13 s: mov al,ds:[si] mov ah,15 mov es:[di],ax inc si inc di inc di loop s mov ax,4c00h int 21h doend:nop code ends end start

Windows平台常用软件工具的开源替代方案

Windows平台常用软件工具的开源替代方案 7-ZIP替代WinZip 7-Zip是一个开放源码的数据压缩程序,主要用在Microsoft Windows操作系统,Unix-like的操作系统如Linux与FreeBSD下面有7-zip的移植版本p7zip可以使用。它提供命令行接口的程序或图形用户界面的程序,而且可以与资源管理器结合。 下载网址:https://www.doczj.com/doc/bb14617262.html,/ FileZilla 替代CuteFTP FileZilla 是一个免费的FTP 客户端软件,虽然它是免费软件,可功能却一点也不含糊,比起那些共享软件来有过之而无不及,在新的版本中作者改进了手动下载的界面和功能等,新版本已经更新支持了续传功能。 下载网址:https://www.doczj.com/doc/bb14617262.html,/ Nitro PDF Reader 替代Adobe Acrobat Nitro PDF Reader您可以创建PDF文件,评论和审查,保存PDF表格,提取文本和图像,直接键入文本到页面上,等等。 下载网址:https://www.doczj.com/doc/bb14617262.html,/download/ MySQL 替代Microsoft SQL Server MySQL是最流行的开源数据库。 下载网址:https://www.doczj.com/doc/bb14617262.html,/ OpenOffice 替代MS Office 这是一套免费的Office 软件,是国内很多所谓中文Office套件的母体。其功能大致可以替代MS的Office系统。 下载网址:https://www.doczj.com/doc/bb14617262.html,/

5款值得一试的Photoshop免费替代软件 随着数码相片大规模的替代传统胶卷相片的地位,拥有一款图像编辑软件变得越来越重要。王中之王当然是 Photoshop,不过完全版打着的699美元标签,许多人开始想要知道有没有免费的选择可以做到 Photoshop 同样的事情。 https://www.doczj.com/doc/bb14617262.html, https://www.doczj.com/doc/bb14617262.html, 是一个功能和教程丰富的软件,还有一个支持社区能够帮助大部分新用户学习中遇到的问题。https://www.doczj.com/doc/bb14617262.html, 发展于一个由微软指导的大学生高级设计项目,目的是替代微软画图板程序,现在由最初从事它开发的一些男校友来维护。它有大量的按钮非常像 Photoshop,以及很类似的功能,使得它成为那些寻求与Photoshop 相似替代程序的人们的强力候选。我敢说 Photoshop 可以做到的事情大部分都可以用 https://www.doczj.com/doc/bb14617262.html, 做到。

基于Windows平台的反Rootkit原理与实现

摘要 摘要 Windows操作系统是目前主流的操作系统,基于这个平台下的各种程序软件层出不穷,相应的木马病毒也在不断的进步。为了对抗杀毒软件,这些木马病毒企图霸占电脑主权,更进一步的扩展恶意行为。这些恶意程序往往具备对抗当今主流杀毒软件的能力,给用户带来了不可估量的损失。 研发探究这些病毒木马的原理及其行为,制作出相应的安全工具来对抗它们,显得十分必要。然而由于Windows 操作系统是不开源的,这对研究其内部的原理增加了一定的难度,制作相应的Anti-Rootkits工具也并非易事。但正是由于这些原因,使得对抗当前流行的病毒木马变得更加具有价值和挑战性。 本论文着重讨论Windows平台下主流的Rootkit技术及防御技术,并且最终将实现一个具有相对完善功能的反Rootkit软件SnowShadow。目前SnowShadow的最新版本是1.2,综合有进程、文件、注册表进程等数十项功能。本软件大量使用微软未公开技术,许多技术建立在逆向操作系统内核代码的基础之上,使用本软件有一定风险。使用本软件可以实现实现手工发现并清除Rootkit病毒,进程管理可以用于结束顽固进程,枚举隐藏进程,文件管理支持文件的暴力删除,隐藏文件的枚举,文件解锁等功能,用于清除Rootkit病毒文件,注册表一项,基于注册表文件解析的编辑器,支持注册表离线编辑(包括删除,增加修改等功能),由于不使用任何API来操作注册表,可以防止通用注册表保护手段的干扰。 关键字:Anti-Rootkit 、Rootkit、反病毒、Windows内核。 I

ABSTRACT Abstract Windows operating system is the current popular operating system. Based on this platform, there are endless variety of software and the corresponding Trojans also continue to progress. To counter the anti-virus software, these Trojans attempt to commandeer the computer's sovereignty, and further expand the malicious behavior. These malicious programs often have the capability of today's major anti-virus software, which gives users an immeasurable loss. It is extremely necessary to explore the principles and behavior of the Trojans. However, since Windows operating system is not open, it becomes more difficult for people to know its principle and to develop the related Anti-Rootkits tools. Because of these reasons, making the Trojans against the current circulating virus became more valuable and challenging. This paper focuses on the mainstream Windows platforms Rootkit technology and defense technology, and will eventually realize a relatively perfect anti-Rootkit software SnowShadow. The latest version of the current SnowShadow is 1.2, integrated with the process, file, registry, process, and dozens of functions. This software will use plenty of technology that Microsoft does not apply and many technologies are based on the operating system kernel code, thus using of this software has some https://www.doczj.com/doc/bb14617262.html,e of this software can be achieved manually find and remove Rootkit virus, process management can be used for the end of stubborn process, enumerate hidden processes, document management support for the violence to delete the file, hidden file enumeration, file unlock and other functions, used to clear Rootkit virus file, a registry-based analysis of the registry file editor, support for offline editing the registry (including delete, modify etc added), because they do not use any API to manipulate the registry to prevent common registry protection Means of interference. Keywords: Anti-Rootkit, Rootkit, Anti-Virus, Windows Kernel. II

相关主题
文本预览
相关文档 最新文档