文档库 最新最全的文档下载
当前位置:文档库 › 实验1_建立windows环境下32位汇编语言开发环境

实验1_建立windows环境下32位汇编语言开发环境

实验1_建立windows环境下32位汇编语言开发环境
实验1_建立windows环境下32位汇编语言开发环境

实验1 win 32汇编程序的编程环境

实验步骤:

1安装开发环境

解压masm32v11r.zip,并运行MASM32 SDK开发软件“install.exe”,将MASM32安装在根目录下。

2 EditPlus多功能编辑器

EditPlus的配置方法如下:

1、在“工具”->“首选项…”中转到“文件类型及语法”。

2、在“文件类型”中选中WIN32ASM文件类型,并进行修改,将文件扩展名设为“ASM”,

扩展名设为“ASM”。语法文件选择asm.stx。

3 定制开发环境

为这个环境建立一个设置环境变量的批处理文件 Var.bat,其内容如下:

@echo off

set Masm32Dir=f:\Masm32

set include=%Masm32Dir%\Include;%include%

set lib=%Masm32Dir%\lib;%lib%

set path=%Masm32Dir%\Bin;%Masm32Dir%;%PATH%

set Masm32Dir=

echo on

文件中设置了3个环境变量:

●include变量指定头文件的搜索目录。在asm和rc文件中可以根据这个变量寻找include语句指定的文件名,避免了使用头文件的全路径名,这样以后移动了MASM32的安装位置就不必修改每个源文件中的include语句。如果使用Visual C++的集成环境来建立rc文件的话,为了使rc.exe 能找到头文件,还要把VC++安装目录下的Include和MFC\Include目录包含进来,多个路径之间用

“;”隔开;

● lib变量指定导入库文件的搜索目录。在asm文件中可以根据这个变量寻找includelib语句指定的导入库文件,Link.exe也根据这个变量寻找库文件的位置。

● path变量就不必多解释了。它只是使我们不必在键入命令时带长长的路径而已。

4、使用EditPlus建立TEST.asm源程序并保存

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

includelib user32.lib

include kernel32.inc

includelib kernel32.lib

.const

szCaption db '恭喜',0

szText db '当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0

.code

start:

invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK

invoke ExitProcess,NULL

end start

5 、建立汇编连接32位应用程序的makefile文件

make可以根据文件的时间正确判断文件的新旧并执行相应的步骤。Makefile作为一个描述文件来告知make文件之间的依赖关系。执行make工具的时候,它会默认用makefile做描述文件名来进行相应的工作,书写描述文件有规定的语法。本试验使用的makefile内容如下:EXE = Test.exe #指定输出文件

OBJS = Test.obj #需要的目标文件

RES = Test.res #需要的资源文件

LINK_FLAG = /subsystem:windows #连接选项

ML_FLAG = /c /coff #编译选项

$(EXE): $(OBJS) $(RES)

Link $(LINK_FLAG) $(OBJS) $(RES)

.asm.obj:

ml $(ML_FLAG) $<

.rc.res:

rc $<

clean:

del *.obj

del *.res

6 、在命令行窗口下运行nmake,进行编译连接,显示结果

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 ;汇编结束

不要把MASM32开发环境和MASM汇编器版本搞混了!

不要把MASM32开发环境和MASM汇编器版本搞混了! MASM32是一个为那些对学习或者编写32位微软汇编(MASM)感兴趣的程序员提供的工作环境,它最流行的版本是8.0版,而我所知道最新版本是9.0版。但是请大家一定要注意,这里的8.0版和9.0版不是指MASM编译器(即ML)的版本,而是MASM32开发环境的版本。经常看到网上有网友发的贴把这两个概念都搞混了。 那么MASM(ML)编译器的版本到底有哪些呢?教学上常用的版本是 5.0版的,之前还有个 4.0版的记得“全国计算机等级三级考试”就是用的 4.0版。 5.0版之后有个 5.1版本,在这之后,从 6.0版开始MASM就改名ML了,因为它把编译和连接组合在一起了。而且 6.0版还对汇编语言进行了大幅改造,使之支持高级语言的很多特性。 6.0版之后常看到的就是6.11、6.13、6.14MASM32(V8.0和V9.0)就是包含有ML6.14版,而不是ML8.0版。 6.14之后就是6.15但不常见,我手头上有6.15的ML,有兴趣的朋友可以向我索取或点此处进入下载。但Microsoft从 6.15版开始好象就不再单独发布MASM的开发工具包了。 以后的ML还有7.0、7.1版,最新的是ML8.0版。但它们都只包含在Visual https://www.wendangku.net/doc/ba18182505.html,和Visual Studio 2005里面。而且如果你安装了Visual Studio 2005的64位开发环境,你将得到一个MASM for x64 (ml64.exe)哈哈,各位这可是支持Intel 和AMD的64位CPU的汇编语言编译器!有志于64位底层开发的赶快去试用看看吧。 MASM 4.00这是最先广泛使用的一个 MASM 版本,适用于 DOS 下的汇编编程。它很精巧,但使用起来不是很智能化,需要用户自己一板一眼地写出所有的东西。 很多教科书上讲的 8086 汇编语法都是针对这个版本的,对程序员来说。它 只比用 Debug 方便一点点 MASM 5.00MASM 5.00 比 4.00 在速度上快了很多,并将段定义的伪指令简化为类 似 .code 与 .data 之类的定义方式,同时增加了对 80386 处理器指令的 支持,对 4.00 版本的兼容性很好 MASM 5.10对程序员来说,这个版本最大的进步是增加了对 @@ 标号的支持。这样,程序员可以不再为标号的起名花掉很多时间。另外, MASM 5.10 增加了对 OS/2 1.x 的支持 MASM 5.10B1989 年推出,比上一个版本更稳定、更快,它是传统的 DOS 汇编编译器中最完善的版本 MASM 6.001992 年发布,有了很多的改进。编译器可以使用扩展内存,这样可以编译更大的文件,可执行文件名相应从 Masm.exe 改为 Ml.exe 。从这个版本开 始可以在命令行上用 *.asm 同时编译多个源文件,源程序中数据结构的使 用和命令行参数的语法也更像 C 的风格。最大的改进之一是开始支 持 .if/.endif 这样的高级语法,这样,使用复杂的条件分支时和用高级语 言书写一样简单,可以做到几千行的代码中不定义一个标号;另外增加了 invoke 伪指令来简化带参数的子程序调用。这两个改进使汇编代码的风格 越来越像 C ,可读性和可维护性提高了很多 MASM 6.00A未发售的版本 MASM 6.00B最后一个支持 OS/2 的 MASM 版本,修正了上一版本中的一些错误 MASM 6.10修正了一些错误,同时增加了 /Sc 选项,可以在产生的 list 文件中列出

《汇编语言》实验报告-搭建开发环境

《汇编语言》实验报告 得分:

1)VC6平台下的汇编语言开发环境搭建(使用MASM32的汇编器 +VC6) 配置IDE环境: –在VC的tools/option/Directories页面中添加Irvine32.inc等所在的目录到include files中; 添加 Irvine32.lib等所在的目录到library files. –将masm32中的ml.exe和ml.err拷贝到VC的Microsoft Visual Studio\VC98\Bin目录中 创建与配置project: –新建VC的win32 console类型空工程 –创建一个asm后缀的文件,并把汇编代码(教材第85页addsub3.asm)输入该文件中,然后将该asm文件添加到 Source Files –选中asm文件,在project settings/Custom Build页面中命令行加: ml /c /coff /Fo$(TargetDir)\$(InputName).obj $(InputPath) 输出中加上: $(TargetDir)\$(InputName).obj –“Project setting”页面的”link”选项卡中“object/library module ”中加入irvine32.lib 2)汇编与链接不带输出的加减法程序(即教材第85页 addsubTest.asm); 3)在程序最后加入调用DumpRegs过程的语句,以输出各寄存器的 值。 4)以单步执行的方式调试该程序,查看每步结果,并解释每步结果, 并写成注释。(特别注意对标志位的影响) 5)(可选)尝试修改程序。 6)(可选)单步跟踪课件中4.3.3节的程序“ptr应用示例”,结合 VC6的内存查看功能(通过菜单view debug windows Memory 调出内存查看窗口)理解每步的执行结果。(注意课件中只是大部分代码,请补全头文件以及程序退出宏。)

详解VS2010如何搭配汇编程序开发环境的图解教程

详解VS2010如何搭配汇编程序开发环境的图解教程 本文和大家分享一下如何搭配汇编程序开发环境的图解教程,非常不错的文章哦。 引子 由于这些日子一直都在研究底层的技术,从Windows 驱动程序,到Windows 内核等等技术的学习, 让我对底层的技术越发有兴趣了,而刚好,在研究WRK 时, 对内存管理,寄存器,地址总线,数据总线,控制总线等的理解不够透彻, 所以越发的想学习汇编程序设计来提升功力, 而由于近来在公司里一直都有项目压着,所以在公司里也实在不好拿本汇编程序设计看, 所以只好晚上回来学习了,汇编看了几个晚上,也算是蛮有感觉的。 今天就先来搭个开发环境再说吧。 开发环境搭配 我介绍四种开发汇编程序的方式: 第一种:直接在Dos 环境下使用Edit 命令调出源码编辑框, 生成源码后,可以使用由微软提供的masm 汇编编译器来对源码进行编译, 编译完后再使用Linker 连接器即可得到可执行文件, 这种方式现在几乎被灭绝了(当然使用masm 汇编编译器还是很普遍的), 除非你真要在DOS 环境下运行汇编程序; 第二种:通过简化第一种方式而来; 第三种:直接使用Masm for Windows 集成实验环境,这个开发环境呢,非常适合汇编语言的初学者,

因为这个IDE 本身就是由一些从事汇编程序教学的大学老师开发的出来用于汇编初学者进行学习和实验的, 所以使用简单,方便,这里可以对这个IDE 稍加推荐; 第四种:则是通过Visual Studio 这个强大的IDE 来实现汇编程序的编译,运行和调试,至于Visual Studio 就不多做介绍了,.Net 用了这么多年,这东西强大到什么程度那是总所周知的; 第一种方式:使用Edit + MASM 5.0 编译器+ Linker 连接器 其实这种方式是很简单的,只是很麻烦,因为简单而且麻烦, 所以我采用尽可能的将截图传上来,然后稍加注解的方式进行介绍, 软件准备: 需要MASM 5.0 或者以上的汇编编译器 首先,是要编辑汇编源代码: 其实对于源码的编辑根本不需要向如下这么麻烦,直接拿个记事本就OK 了 运行cmd 命令

第2章--win7-实验及习题(1)

第2章windows 7 实验 实验一Windows 7基本操作 通过对windows 7认识,了解windows 7,掌握windows 7的启动,关闭;学会文件夹的常用操作,包括新建文件,重命名文件,查找文件等。 一、实验案例 1.打开装有windows 7操作系统的计算机,认识windows 7的桌面; 2.在D盘目录下建立如图所示的文件目录: 销售表.txt 销售业绩.doc 销售说明.xls (1)1月份、2月份、3月份是文件还是文件夹? (2)销售表.txt、销售业绩.doc、销售说明.xls是文件还是文件夹? (3)描述.txt和.doc以及.xls的文件类型。 (4)D盘的文件夹第一季度销售统计包含有几个文件夹和几个文件? 3. 设置销售表.txt和销售说明.xls的文件属性分别为“只读”和“隐藏”。 问题:文件属性除了只读和隐藏外,还可以设置什么属性? 4. 将销售业绩.doc移动到文件夹3月份中,重命名为3月份销售业绩.doc再将该表复制到文件夹2月份中,重命名为2月份销售业绩.doc (1)文件夹1月份中是否还有文件销售业绩.doc (2)将文件由甲位置移动到乙位置,甲位置和乙位置都存储有该文件,这个说法对吗? (3)将文件由甲位置复制到乙位置,甲位置和乙位置都存储有该文件,这个说法对吗? (4)移动文件、复制文件、粘贴文件分别用什么快捷组合键? 5. 在C盘中查找以字母C开头的所有文件。 (1)完成此题操作,在如下图所示的图形中如何填写内容?

图2-1 进入C盘图 回答:搜索本地磁盘(C:盘):_________________ 查找文件时,使用的通配符“?”和“*”的区别是什么? 回答: 二、实验指导 通过对windows 7认识,了解windows 7,掌握windows 7的启动,关闭;学会文件夹的常用操作,包括新建文件,重命名文件,查找文件等。 1.主要知识点 (1)打开装有windows 7操作系统的计算机,认识windows 7的桌面 (2) 新建文件 (3) 文件属性 (4) 文件的移动,复制,粘贴 (5) 查找文件 2.实现步骤 (1)打开装有windows 7操作系统的计算机,windows 7的桌面,包括快速启动区,任务栏,系统区;如图2-2

基本演示汇编语言实验操作方法

基本演示1汇编语言实验操作方法 一.实验的基本方法(MASM宏汇编子目录下) 1.在DEBUG下运行汇编指令或简单小程序 在DEBUG提示符下,用汇编命令A:输入汇编指令或简单小程序,用单步命令T 或全程命令G来执行,并检查执行中间结果与最后结果。 2.标准汇编程序上机方法 A.建立ASM文件,用https://www.wendangku.net/doc/ba18182505.html,全屏幕编辑文件或其他编辑文件建立扩展名为ASM的源程序. B.用MASM(或ASM)产生扩展名为OBJ目标文件。 C.用LINK产生扩展名为EXE可执行文件。 D.在DEBUG下,把文件调入内存,调试程序。 E.在DOS下可直接执行扩展名为EXE的文件。(详细过程) 二.汇编语言的工作环境. A.硬件环境 IBM-PC及其系列机 内存256K字节以上 外存:硬盘或至少一个软驱 CPU:80586以上 显示器:单色或彩色显示器 键盘:标准ASCII码键盘 B.软件环境 编缉程序:https://www.wendangku.net/doc/ba18182505.html,或其他编缉程序 汇编程序:MASM.EXE或ASM.EXE 连接程序:LINK.EXE 调试程序:https://www.wendangku.net/doc/ba18182505.html,或DEBUG.EXE

A命令 在命令A后跟地址,按回车输入程序,可以连续输入,当按下回车后,就退回到DEBUG下。 T命令

T命令为跟踪命令。 G命令 该地址指定了运行的起始地址,如不指定则从当前的cs:ip开始运行EDIT.EXE

怎样生成.exe文件

生成.obj文件

基本演示2DEBUG命令的使用 A.程序调用命令 C>DEBUG[D:][PATH][FILENAME[.EXT]][PARM1][PARM2] 其中,文件名是被调试文件的名字。如未键入文件名。可用DEBUG命令N和L 把需要文件装入存储器后再调试。D指定驱动器,PATH为路径,FILENAME为文件名,PARM为命令参数 B.显示存储单元命令 -D[ADDRESS]或;ADDRESS地址 -D[RANGE];RANGE范围 C.修改存储单元内容命令 -E ADDRESS[LIST] D.检查和修改寄存器内容命令 -R[REGISTER NAME];Register name寄存器名字 E.汇编命令 -A[ADDRESS] F.跟踪命令 -T[=ADDRESS][VALUE];Value变量值 G.运行命令 -G[=ADDRESS][ADDRESS2[ADDRESS3] H.反汇编命令 -U[ADDRESS] -U[RANGE]

使用VS2015调试罗云彬的32位汇编语言源代码

使用VisualStudio2015 调试罗云彬的32位汇编语言附属光盘中的汇编源代码 (第三版琢石成器版) 整理:太虚野老

本文介绍使用Visual Studio 2015 调试汇编源代码。以罗云彬的《Windows环境下32位汇编语言程序设计(最新琢石成器版)》附属光盘中的汇编源代码为例。 1.创建ASM项目 打开Visual Studio 2015,选择新建一个VC++项目。选择“空项目”,输入项目名称,点确定。 在工程中的“源文件”文件夹新建“.asm”类型的源文件: 在这里会发现不能新建“.asm”类型的文件,选择“C++文件(.cpp)”,然后在文件结尾加上扩展名.asm。

现在项目和源文件都有了,但是这毕竟是个VC++的空项目,VC++项目在默认情况下是不会编译.asm类型的源文件的。所以你点击“生成解决方案”发现根本什么都没有生成,Debug文件夹是空的,就会出现这样的现象。 事实上在创建源文件时,可以使用任意格式的源文件。例如使用文本文件:

要经过下面两步设置。 第一步,右击解决方案选择“生成依赖项”→“生成自定义”: 把“MASM”那项勾上,确定。

第二步,右击你创建的.asm源文件,选择属性,在配置属性->常规->项类型下拉菜单中选择“Microsoft Macro Assembler”。这样就指定了你源文件的类型是.asm格式的,如果不指定默认就是按照.cpp也就是c++语法去编译自然是行不通的。 设置这些之后还要去修改项目配置,这样程序才能得以运行。这包括是否连接其他的库文件(.lib)、是否调试、子系统的原型环境。这些全部都在项目属性中设置。打开项目属性的方法:你可以在刚才右键点“生成自定义”那里选择最下面的属性,也可以在项目选项卡里找到“属性”一项然后选择。 选择配置属性->连接器。 把调试->生成调试信息改为“是(/Debug)”。在Visual Studio 2015中默认是“true”; 把系统->子系统改为“控制台(/SUBSYSTEM:CONSOLE)”:

Windows7_操作系统上机实训

第二章中文版Windows7 操作系统 上机实训 实验2 Windows 7 文件操作 一、实验目的 1.了解资源管理器的功能及组成; 2.掌握文件及文件夹的概念; 3.掌握文件及文件夹的使用,包括创建、移动、复制、删除等; 4.掌握文件夹属性的设置及查看方式; 5.掌握运行程序的方法。 二、实验内容及步骤 1.打开资源管理器右击桌面左下角“开始”按钮,在出现的快捷菜单中选择“windows 资源管理器”, 图2-25 创建快捷方式窗口 (1)图2-26 创建快捷方式窗口 (2)7、创建桌面小工具在桌面右键快捷菜单中选择“小工具”,出现如图2-27 所示桌面小工具窗口,选择“日 图2-32 排列图标菜单 3、创建文件夹在C 盘上创建一个名为XS 的文件夹,再在XS 文件夹下创建两个并列的二级文件夹,其名为XS1 和XS2。 方法一:在资源管理器窗口,在导航窗格选定C:\为当前文件夹,在右窗格,使用菜单命令“文件|新建|文件夹”,右窗格出现一个新建文件夹,名称为“新建文件夹”。将“新建文件夹”改名为“XS”即可。 方法二:在资源管理器窗口,在左窗格选定C:\为当前文件夹,在右窗格任一空白位置处,右击鼠标,在弹出的快捷菜单中选择“新建|文件夹”,右窗格出现一个新建文件夹,名称为“新建文件夹”。将“新建文件夹”改名为“XS”即可。双击XS 文件夹,进入该文件夹,用上述同样方法创建文件夹“XS1”和“XS2”。 4、复制、剪切、移动文件 (1)在C 盘中任选3 个不连续的文件,将它们复制到C:\XS 文件夹中。 方法一: ①选中多个不连续的文件:按住“Ctrl”键不放手,单击需要的文件(或文件夹),即可同时选中多个不连续的文件(或文件夹)。 ②复制文件:选中“编辑|复制”菜单,或者右击鼠标,在快捷菜单中选“复制”,或者按组合键“Ctrl+C”。 ③粘贴文件:单击XS 文件夹,进入XS 文件夹,选择“编辑|粘贴”菜单命令,或者右击鼠标,在快捷菜单中选“粘贴”,或者按组合键“Ctrl+V”,即可将复制的文件粘贴到当前文件夹中。 方法二: ②开左窗格的C 盘文件目录,使目标文件夹XS 在左窗格可见;选择“工具|文件夹选项”菜单,出现如图2-23 所示窗口,在“隐藏文件和文件夹”下选择“不显示隐藏的文件、文件夹或驱动器”,单击“确定”按钮。打开XS 文

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

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(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, 根据结果影响其他标志位。

项目2 Windows 7操作系统(实验教程)

实验一Windows 7的基本操作 实验二文件和文件夹的概念与操作 实验三系统自带的“附件”应用程序 实验四Windows 7的搜索功能 实验五定制用户的工作环境 实验六Windows 7的磁盘管理 项目二Windows 7操作系统 实验一Windows 7的基本操作 【实验目的】 通过本次实验,了解Windows 7的启动与退出方法;了解Windows 7桌面的基本构成要素;学会排列桌面图标与调整任务栏;掌握窗口和对话框的组成与基本操作;观察所用计算机主要硬件的基本信息。 项目二Windows 7操作系统 【实验内容】 Windows 7的启动与关闭; 了解Windows 7桌面的基本构成要素; 学会排列桌面图标与调整任务栏; 掌握窗口和对话框的组成与基本操作; 观察所用计算机主要软、硬件的基本信息。 【实验步骤】 1.Windows 7的启动与关闭 (1)Windows 7的启动 按照先外设后主机的顺序,先打开显示器等外设的电源开关,再开主机开关,等待计算机启动到WINDOWS状态。正常情况下,将出现Windows 7的桌面,如果启动过程中出现“黑屏”、“蓝屏”或有报警声时,Windows 7启动不成功,可能的情况如下,软件故障:Windows 7操作系统被病毒或人为破坏不能正常启动;硬件故障:计算机中某一个硬件出现损坏或接触不良故障,导致系统无法启动。 (2)Windows 7的关闭 关闭计算机之前,首先要关闭任务栏中打开的所有任务。具体操作:可以右击任务栏中的相关软件图标按钮,在打开的快捷菜单中,选择“关闭”菜单项并单击,即可关闭打开的一个任务,同样方法,可以关闭其它所有运行的任务。 关闭Windows 7操作系统也就是关闭计算机,使用鼠标单击【开始】→【关闭计算机】项,在打开的关闭计算机对话框中,选择“关闭”选项,单击【确定】按钮,计算机主机自动关闭。 在关机计算机对话框中,除了“关闭”项外,还会发现“待机”、“重新启动”和“等待”等项目,同学们可以分别操作一下,总结一下选择不同项目的不同功能。 2.了解Windows 7桌面的基本构成要素 正常启动Windows 7以后,大家会发现Windows桌面的基本构成要素:“我的电脑”、“我的文档”、“网上邻居”、“回收站”及“Internet E7lorer”等,除了以上基本要素外,不同的机器可能装有不同的应用程序会显示在桌面上。任务栏是位于桌面最下方的一个小长条。它显示了系统正在运行的程序和打开的窗口、当前时间等内容,用户通过任务栏可以完

STM32汇编语言 左右跑马灯

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;; STM32 LED左右跑马灯实验 ;;8个LED接在PE口(PE[0..7]) ;;LED先向右跑,跑完再向左跑,不停左右跑动 ;;2011-5-3 by 追梦;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BIT6 EQU 0X00000040 GPIOE EQU 0X40011800 ;GPIOE 地址 GPIOE_CRL EQU 0X40011800 ;低配置寄存器 GPIOE_CRH EQU 0X40011804 ;高配置寄存器 GPIOE_ODR EQU 0X4001180C ;输出,偏移地址0Ch GPIOE_BSRR EQU 0X40011810 ;低置位,高清除偏移地址10h GPIOE_BRR EQU 0X40011814 ;清除,偏移地址14h IOPEEN EQU BIT6 ;GPIOE使能位 RCC_APB2ENR EQU 0X40021018 STACK_TOP EQU 0X20002000 AREA RESET,CODE,READONLY DCD STACK_TOP ;MSP主堆栈指针 DCD START ;复位,PC初始值 ENTRY;指示开始执行 START LDR R1,=RCC_APB2ENR LDR R0,[R1] ;读 LDR R2,=IOPEEN ORR R0,R2 ;改 STR R0,[R1] ;写,使能GPIOE时钟 ;PE[0..7] 8个引脚均设置成推挽式输出 LDR R0,=0x33333333 LDR R1,=GPIOE_CRL STR R0,[R1] LDR R1,=GPIOE_ODR LDR R0,=0X7F ;初始时最高位点亮 MOV R2,#0 LOOP STR R0,[R1] PUSH {R0} MOV R0,#300 BL.W DELAY_NMS ;延时300ms POP {R0} ADD R2,#1

实验一 搭建开发环境

实验一搭建开发环境 一、实验目的 搭建汇编语言的开发环境,熟悉汇编程序开发的基本步骤,掌握基本的调试操作。 二、实验内容与要求 基于VISUAL STUDIO 平台,结合MASM32的汇编器,构建IA-32汇编语言的开发环境。 三、仪器、设备 PC机 四、实验步骤 1)VC6平台下的汇编语言开发环境搭建(使用MASM32的汇编器+VC6) 配置IDE环境: –在VC的tools/option/Directories页面中添加Irvine32.inc等所在的目录到include files中; 添加Irvine32.lib等所在的目录到library files. –将masm32中的ml.exe和ml.err拷贝到VC的Microsoft Visual Studio\VC98\Bin目录中 创建与配置project: –新建VC的win32 console类型空工程 –创建一个asm后缀的文件,并把汇编代码(教材第85页addsub3.asm)输入该文件中,然后将该asm文件添加到Source Files –选中asm文件,在project settings/Custom Build页面中命令行加: ml /c /coff /Fo$(TargetDir)\$(InputName).obj $(InputPath) 输出中加上: $(TargetDir)\$(InputName).obj –“Project setting”页面的”link”选项卡中“object/library module ”中加入irvine32.lib

2)汇编与链接不带输出的加减法程序(即教材第85页addsubTest.asm); 3)在程序最后加入调用DumpRegs过程的语句,以输出各寄存器的值。 4)以单步执行的方式调试该程序,查看每步结果,并解释每步结果,并写 成注释。(特别注意对标志位的影响) 5)(可选)尝试修改程序。 6)(可选)单步跟踪课件中4.3.3节的程序“ptr应用示例”,结合VC6的 内存查看功能(通过菜单view→debug windows→Memory调出内存查看 窗口)理解每步的执行结果。(注意课件中只是大部分代码,请补全头文 件以及程序退出宏。) 参考资料1: 1. VC6.0等visual studio集成开发环境对标志位的称呼与通常的不同,它们的对应关系如下:OV=overflow flag (OF) UP=direction flag (DF) EI=interrupt flag (IF) PL= Sign Flag (SF) ZR=zero flag (ZF) AC=auxiliary flag (AF) PE= parity flag (PF) CY=carry flag (CF) 2. 参考资料2: 上述实验使用的是Visual Studio 6.0。实验完成以后也可以偿试其它的开发环境的配置。以下是Visual Studio 2010环境的配置,供参考: VS2010平台下的汇编语言开发环境搭建 a.在VC++ 中新建一个空项目,取名为Test

SI02汇编语言集成开发环境的设计开发.

SI02汇编语言集成开发环境的设计开发 摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大器-电容(OTA—C)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波器带宽进行控制,并利用ADS软件进行电路设计和仿真验证。仿真结果表明,该滤波器带宽的可调范围为1~26 MHz,阻带抑制率大于35 dB,带内波纹小于0.5 dB,采用1.8 V电源,TSMC 0.18μm CMOS工艺库仿真,功耗小于21 mW,频响曲线接近理想状态。关键词:Butte 汇编语言作为可以直接对计算机硬件进行操作的语言,无论语言和架构如何发展,其最高的执行效率和最直接的硬件操作都是不可替代的,这也是为什么绝大多数语言中都可以内嵌汇编语言的原因。而在实际工作中,能使用汇编语言熟练编写程序的工作人员却相当匮乏,究其原因,除了汇编语言比较抽象,难于掌握以外,一个主要的原因就是汇编语言的上机环境普遍使用的是基于命令行的编译、链接程序,没有集成开发环境,造成程序在编制和调试上的困难。 基于上述原因及实际工作需要,我们开发一个专用于SI02汇编语言的集成开发环境,以改善程序开发环境、提高编程效率。 2.SI02汇编语言简介 SI02是自行研制的一种16位的微处理器芯片,该芯片有自己的指令系统和汇编语言—SI02。SI02汇编语言不支持数据结构和数据类型,但是在语法、格式和结构等方面和C语言几乎完全一致,从而使用户更加易于掌握。SI02编程语言不区分大小写,但建议用户用小写字母编写程序,以便提高编译效率;SI02编程语言支持十进制和十六进制两种数据表示方法,其中十六进制的数据应以“0x”作为数据的开头。在使用该汇编语言编程时,要求遵循图1所示的程序结构。 以上各结构之中,除主程序之外都不是必要部分,但如若用到,则必须按照图中所示顺序出现。另外,程序结构中的数据块是指在一些应用问题中,需使用一些固定数据,如变换表格等,这些数据在SI02编程语言中以数据块的形式出现,数据块部分一般出现在程序的末尾,格式如下: 标号:数据1;[注释] ………………

《 Windows7 操作系统》实验报告

实验(一) Windows 7基本操作 一、实验目的 1.掌握文件和文件夹基本操作。 2.掌握“资源管理器”和“计算机”基本操作。 二、实验要求 1.请将操作结果用Alt+Print Screen组合键截图粘贴在题目之后。 2.实验完成后,请将实验报告保存并提交。 三、实验内容 1.文件或文件夹的管理(提示:此题自行操作一遍即可,无需抓图)★期末机试必考题★ (1) 在D:盘根目录上创建一个名为“上机实验”的文件夹,在“上机实验”文件夹中创建1个名为“操作系统上机实验”的空白文件夹和2个分别名为“2.xlsx”和“3.pptx”的空白文件,在“操作系统上机实验”文件夹中创建一个名为“1.docx”的空白文件。 (2) 将“1.docx”改名为“介绍信.docx”;将“上机实验”改名为“作业”。 (3) 在“作业”文件夹中分别尝试选择一个文件、同时选择两个文件、一次同时选择所有文件和文件夹。 (4) 将“介绍信.docx”复制到C:盘根目录。 (5) 将D:盘根目录中的“作业”文件夹移动到C:盘根目录。 (6) 将“作业”文件夹中的“2.xlsx”文件删除放入“回收站”。 (7) 还原被删除的“2.xlsx”文件到原位置。 2.搜索文件或文件夹,要求如下: 查找C盘上所有以大写字母“A”开头,文件大小在10KB以上的文本文件。(提示:搜索时,可以使用“?”和“*”。“?”表示任意一个字符,“*”表示任意多个字符。)

3. 在桌面上为C:盘根目录下的“作业”文件夹创建一个桌面快捷方式。★期末机试必考题★ 3.“计算机”或“资源管理器”的使用 (1) 在“资源管理器”窗口,设置以详细信息方式显示C:\WINDOWS中所有文件和文件夹,使所有图标按类型排列显示,并不显示文件扩展名。(提示:三步操作全部做完后,将窗口中显示的最终设置结果抓一张图片即可) (2) 将C:盘根目录中“介绍信.docx”的文件属性设置为“只读”和“隐藏”,并设置在窗口中显示“隐藏属性”的文件或文件夹。(提示:请将“文件夹”对话框中选项设置效果与C:盘根目录中该文件图标呈现的半透明显示效果截取在一整张桌面图片中即可) 4.回收站的设置 设置删除文件后,不将其移入回收站中,而是直接彻底删除功能。

16、32位微机原理、汇编语言与接口技术教程课后复习题答案

《16/32位微机原理、汇编语言及接口技术教程》 部分习题参考解答 第1章微型计算机系统概述 〔习题1.2〕 什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统? 〔解答〕 通用微处理器:适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。 单片机:是指通常用于控制领域的微处理器芯片,其部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。 DSP芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,部集成有高速乘法器,能够进行快速乘法和加法运算。 嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。 〔习题1.5〕 说明微型计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。 存储器:存储器是存放程序和数据的部件。 外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。I/O设备通过I/O接口与主机连接。

总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。 〔习题1.6〕 什么是总线?微机总线通常有哪3组信号?各组信号的作用是什么? 〔解答〕 总线:传递信息的共用通道,物理上是一组公用导线。 3组信号线:数据总线、地址总线和控制总线。 (1)地址总线:传输将要访问的主存单元或I/O端口的地址信息。 (2)数据总线:传输读写操作的数据信息。 (3)控制总线:协调系统中各部件的操作。 〔习题1.7〕 简答如下概念: (1)计算机字长 (2)取指-译码-执行周期 (3)ROM-BIOS (4)中断 (5)ISA总线 〔解答〕 (1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。 (2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。 (3)ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。 (4)中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。 (5)ISA总线是指IBM PC/AT机上使用的系统总线。 〔习题1.8〕 下列十六进制数表示无符号整数,请转换为十进制形式的真值: (1)FFH (2)0H (3)5EH (4)EFH 〔解答〕 (1) 255 (2) 0 (3) 94 (4) 239

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法 一、汇编源程序的建立 1. 使用工具 (1)EDIT,记事本等文本编辑软件,编辑源程序,保存为.asm文 件; (2)ASM,MASM汇编程序,对源程序进行汇编,生成.obj文件- 目标文件,以及调试用.LST-列表文件和.CRF-交叉引用表; (3)Link连接程序,对使用的目标文件和库文件进行连接,生 成.exe文件,同时调试用.map-地址映像文件; 如果源程序无语法错误,上述三步将生成可运行的.exe文件, 如果运行结果无误,则完成对汇编程序的编程,如果运行后结果存 在错误,需要进行调试。 (4)Debug调试程序,对.exe文件进行调试,修改,直到程序正 确。 图3 目标程序生成步骤图2. 编程过程 (1)用文本编辑软件,编写扩展名为.asm的源文程序文件。 (2)用汇编程序对编好的源文件进行汇编。 命令行:masm [*.asm] ↙ 如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称的目标文件.obj。 使用MASM50汇编程序进行汇编,输入命令行masm或者masm *.asm后,根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*.obj,*.lst和*.crf。 *.obj-目标文件,用于连接生成可执行文件; *.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于

调试; *.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。 (3)目标文件的连接 命令行:link [*.obj] [*.obj] [*.lib] ↙ 连接程序,将多个目标程序及库文件,连接生成可执行的*.exe文件,同时可选择生成*.map文件。 *.map-地址映像文件,给出内存地址分配的有关信息。 下图所示屏幕,为Link连接两个目标文件,没有错误的情况下,生成*.exe 文件。 (4)执行程序 执行*.exe文件,观察程序运行结果,如果存在错误,需要进行调试。调试工具DEBUG是针对汇编语言程序设计的一种调试工具,熟练使用DEBUG有助于汇编语言程序员对于逻辑错误的调试。 二、汇编程序的调试

实验一 ADS集成开发环境及汇编语言指令实验

实验一 ADS集成开发环境及汇编语言指令实验 1.1 实验目的 1.熟悉ADS1.2 软件开发环境; 2.理解ARM920T 汇编指令的用法,并能编写简单的汇编程序; 3.理解常用的ARM伪指令和伪操作的功能和使用。 1.2 实验内容 1.使用LDR 指令读取0x30003100 上的数据,将数据加1,若结果小于10,则使用STR 指令把结果写回原地址,若结果大于等于10,则把0 写回原地址。 2.使用ADS1.2 软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视R0,R1 的值,打开存储器观察窗口(Memory)监视0x30003100 上的值。 3.使用数据定义伪操作定义两个内存数据块,通过汇编指令将源数据块的内容复制到目的数据块,并对程序运行时相关寄存器、内存中的数据进行跟踪。 1.3 预备知识 1.ARM 指令系统内容; 2.ADS1.2 工程编辑和AXD 调试的内容。 1.4 实验设备 硬件:PC 机一台。 软件:Windows XP系统,ADS1.2 集成开发环境。 1.5 实验步骤 1.启动ADS1.2,使用ARM Executable Image 工程模板建立一个工程arm1.mcp。 2.建立汇编源文件arm1.s,编写实验程序(见1.6实验参考程序1),然后添加到工程中。 3.设置工程连接地址RO Base 为0x30000000,RW Base 为0x30003000,设置options 中的调试口地址Image entry point 为0x30000000。 设置方法:选择Edit->DebugRel Settings,打开下图所示的窗口: 图1.1 DebugRel Settings窗口

相关文档
相关文档 最新文档