汇编上机指导

上传人:夏** 文档编号:433257353 上传时间:2023-12-05 格式:DOC 页数:44 大小:214.50KB
返回 下载 相关 举报
汇编上机指导_第1页
第1页 / 共44页
汇编上机指导_第2页
第2页 / 共44页
汇编上机指导_第3页
第3页 / 共44页
汇编上机指导_第4页
第4页 / 共44页
汇编上机指导_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《汇编上机指导》由会员分享,可在线阅读,更多相关《汇编上机指导(44页珍藏版)》请在金锄头文库上搜索。

1、汇编语言程序设计(双语)上机指导汇编语言程序设计(双语)上机指导1实验1 建立windows环境下32位汇编语言开发环境2实验2 Instruction Format and Addressing Mode3实验3 Data Operation Programming4实验4 Branching and Loop Programming5实验5 Procedure Programming7实验6 Input/Output Programming9实验7 Macro Design10实验8 Mixed Programming11调试程序Windbg18宏汇编命令ML和连接命令LINK常用参数速查

2、21输入输出宏命令22实验1 建立windows环境下32位汇编语言开发环境实验目的:建立windows环境下32位汇编语言开发环境,并熟悉它的使用方法。实验要求: (1)建立windows环境下32位汇编语言开发环境; (2)熟悉自己建立的开发环境的使用方法;实验内容: (1)定制masm32集成开发环境,使之符合教学要求。 (2)分别建立汇编,连接,和汇编&连接批处理命令,能够生成包含调试信息的目标文件,列表文件,以及能够进行调试的可执行WIN32控制台程序。 (3)建立32位汇编语言框架程序。 (4)在自己建立的开发环境下汇编,连接,运行教材中的fig3-1。实验步骤:1、定制开发环境m

3、asm32修改文件msm32binbuildc.bat中的内容,使得执行ProjectConsole Assemble & Link后能够汇编连接可调试的32位控制台应用程序,同时生成列表文件。汇编命令改为:masm32binml /c /coff /Fl /Zi “%1.asm”连接命令改为:masm32binlink /debug “%1.obj”2、在定制后的masm32开发环境中运行教材中的例题fig3-1.3、利用教材提供的80x86/software在命令行方式下运行例题fig3-1.4、建立适合在定制开发环境下使用的32位应用程序框架参考:.386;必须是第一条非注释语句,说明这

4、是一个32位应用程序.model flat, stdcall;定义程序的存储模式(32位应用程序中必须采用flat)include masm32includeio32.inc;可选,如果在程序中使用作者自定义的宏命令需要这一句 .stack 4096;定义堆栈段.data;定义数据段;数据定义.code;定义代码段start:;程序起始点;程序代码ret ;程序结束点,返回WINDOWS;子程序代码end start;汇编结束5、在自己建立的开发环境下实现教材中P59. Programming Exercises 3.3中第3题。实验要求:完成实验报告。在实验报告中完成下列内容:(1) 写出你

5、自己的32位应用程序框架,并说明如何汇编,连接生成可执行文件。(2) 写出实验步骤5中程序的完整源代码。实验2 Instruction Format and Addressing Mode实验目的:熟悉汇编语言指令格式,掌握常用数据定义伪指令,理解各种寻址方式的应用。掌握调试工具Windbg.exe的使用。实验要求: (1)通过调试程序理解常用数据定义伪指令的作用。 (2)通过调试程序理解各种寻址方式的应用。 (3)熟练掌握调试工具Windbg的使用方法。实验内容:(1)上机汇编连接fig3-1,生成并观察列表文件;用调试工具Windbg单步执行程序,观察寄存器和内存的变化。(2)编写程序完成

6、教材中P72. Exercises3.5。用Windbg观察内存的分配情况。实验步骤:1、 上机汇编连接fig3.1(1) 查看列表文件。根据列表文件画出数据段中数据的分配情况。(2) 用Windbg调试fig3-1。用memory窗口察看prompt1开始的内存空间,并记录下来。(3) 对比源程序中的数据定义,列表文件的数据分配和在Windbg中记录的数据,理解数据定义伪指令的作用。2、 用Windbg调试fig3-1,用Disassembly窗口察看指令的机器码。3、 用Windbg单步执行fig3-1,观察每一条指令的执行结果。4、 上机编写完整的源程序加入教材中P72. Exercis

7、es3.5中的数据定义,汇编连接后,用Windbg观察内存分配的情况。实验要求:完成实验报告,回答下面的问题:1、 要使程序能在windbg中调试,执行汇编和连接命令时,需要使用什么参数?2、 Fig3-1.exe中执行指令input string, 40时,用户如果输入”123”, 该指令的执行结果是什么?atod string指令执行后的结果是什么?3、 写出P72. Exercises3.5中1,3,5,7,10,12,15,17,23,32定义的内存空间的值。4、 写出下列指令的寻址方式和机器码:(1) add eax, number1(2) mov number1, eax(3) m

8、ov eax, 100(4) mov ebx, offset number1add eax, ebx实验3 Data Operation Programming实验目的:熟练掌握基本的数据传送指令,算术运算指令和位操作指令在编程中的应用。实验要求:按照要求编写程序,调试运行。实验内容:1、 完成教材P107. Programming Exercises 4.2中第2题。Write a complete 80x86 assembly language program to prompt for values of x,y,and z and display the value of expres

9、sion 2(-x+y-1)+z. Allow for 32-bit integer values.2、 完成教材P117. Programming Exercises 4.3中第3题。Suppose that someone has a certain number of coins(pennies, nickels,dimes,quarters,fifty-cent pieces, and dollar coins) and wants to know the total value of the coins, as well as how many coins there are. Wr

10、ite a program to help. 3、 完成教材P129. Programming Exercises 4.4中第4题和第5题。a) Write a complete 80x86 assembly language program to prompt for four pairs of grades and weighting factors. Each weighting factor indicates how many times the corresponding grade is to be counted in the sum. The weighted sum is:

11、 WeightedSum=Grade1*Weight1+ Grade2*Weight2+ Grade3*Weight3+ Grade4*Weight4 and the sum of the weight is: SumWeights=Weight1+Weight2+Weight3+Weight4. Display the weighted sum, the sum of the weights and the weighted average(WeightedSum/SumofWeights).b) Write a complete 80x86 assembly language progra

12、m to prompt for four grades , and then display the sum and the average of the grades in ddddd format.4、 编写代码实现下面的功能:无符号两位十进制字符串转换为对应的二进制数存入AL5、 编写代码实现下面的功能:将AL中的数值(0-99)转换为无符号十进制数字符串。6、 编写代码实现下面的功能:将两位的十六进制字符串(0-9)转换为对应的二进制数存入AL7、 编写代码实现下面的功能:将AL中的数值转换为对应的两位十六进制字符串。实验要求:提交试验内容1-3源程序,完成实验报告。实验报告中要求写出

13、实现实验内容4,5,6,7的关键代码。实验4 Branching and Loop Programming实验目的:熟练掌握分支和循环结构的设计方法,熟悉跳转和循环指令的使用方法。实验要求:按照要求编写程序,调试运行。实验内容:1、 编写程序实现下面的算法:if thenlowerCount+1;elseif(chA) and (chZ)thenupperCount+1elseotherCount+1;endifendif其中ch调用ReadChar输入,lowerCount, upperCount和otherCount的值用WriteUDecByte显示。2、 编写程序从键盘输入一系列有符号

14、数,找出其中的最大数和最小数,显示运行结果。建议算法如下:显示 “First number?”;调用ReadSDecDword输入双字有符号数;minimum:=number;maximum:=number;while(显示 “Another number?(Y or N)”)loopif (输入Y) then调用ReadSDecDword输入双字有符号数;if(numbermaximum)thenmaximum:=number;endifendwhile3-6题中任选一题:3、编写程序将EAX的内容转换为二进制字符串4、编写程序将EAX的内容转换为十六进制字符串5、编写程序将EAX的内容转换

15、为无符号十进制字符串6、编写程序将EAX的内容转换为有符号十进制字符串,负数字符串以“-“引导。7-10题中任选一题:7、编写程序将二进制字符串表示的数据存入EAX寄存器8、编写程序将十六进制字符串表示的数据存入EAX寄存器9、编写程序将十进制字符串表示的无符号数据存入EAX寄存器10、编写程序将十进制字符串表示的有符号数据存入EAX寄存器实验要求:提交实验内容1,2的源程序,完成实验报告,实验报告中给出3-6题中任一题的关键代码,7-10题中任意一题的关键代码。实验5 Procedure Programming实验目的:理解堆栈的工作原理,熟练掌握子程序的设计方法,熟悉子程序相关指令的使用方法。实验要求:按照要求编写程序,调试运行。实验内容

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号