计算机学院11级汇编语言程序设计实验。
2014.11一、实验环境介绍与演示(3学时)
16位程序实验环境。
32位程序实验环境。
二、实验内容及建议学时分配数:
2学时)熟悉dos编程环境:编写一个dos环境的汇编语言程序,要求从键盘输入一串字符,去除连续重复的字符后再显示。如:输入“abbcccba”应该输出“abcba”
3学时)程序中自定义缓冲区area1,其中存放200个有序的无符号字型数据(至少有3个重复数据),编程序将其排序后送到自area2开始的单元中,要求传送后的数据从大到小排序,并实现查找功能,判定需要查找的数据在area1与area2中分别对应的位置,并通过查看内存验证结果的正确性。把有序的无符号字型数据换成带符号字型数据,实现以上功能。
熟悉debug调试环境。使用debug调试程序察看机器码,并单步执行,观察每一条指令的执行结果、
寄存器的内容、内存变量和堆栈数据的变化情况。
4学时)熟悉windows编程环境:
编写一个windows界面汇编程序,显示一个带yes,no选择按钮的消息框,标题显示为:自己的姓名;正文内容显示为:学号。
编写windows 32位控制台程序,求解一元二次方程ax2+bx+c=0,要求提示用户输入32位带符号整数a, b, c,要求求解出x的值。
熟悉windbg调试环境。使用windbg调试程序察看机器码,并单步执行,观察每一条指令的执行结果、
寄存器的内容、内存变量和堆栈数据的变化情况。
4学时)把数组中的n个双字型元素按从大到小的顺序排列。增加一个交换标志,在排序完成时不再执行多余的外层循环。
熟悉windbg调试环境。使用windbg观察内存变量,并观察结果。
4学时)多模块程序设计及多语言混合编程。要求:
编写一个汇编语言递归子程序(子模块)求斐波那契数列,斐波纳契数列以如下被以递归的方法定义:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>=2,n∈n*);
编写一个计算z=sin(2n+1)*f(n)的汇编语言主模块,其中sin(x)调用c语言的函数库、f(n)通过调用⑴中的模块实现,输入n。显示格式为:
z=使用调试程序观察参数传递及堆栈平衡情况。
选做)编写一个计算z=sin(2n+1)*f(n)的c函数,并实现第5题⑵的功能。获得其机器指令,观察参数传递及堆栈平衡情况。
选做)实现两个文件。
以ascii格式保存)内容的比对。若两文件内容一样,输出相应提示;若两文件不一样,输出对应的行号。
三、现场验收题目四、实验报告(最后一次实验结束后的两周内,以班为单位上交电子版至任课老师)
要求:1.第3题源程序(含注释)、可执行程序、执行结果屏幕拷贝。
2.第4题排序算法流程图、源程序(含注释)、可执行程序、内存中的排序结果硬拷。
1贝。3.第5题源程序(含注释)、可执行程序、执行结果屏幕拷贝。
4.关于汇编语言程序设计的小**或学习本课程体会(以上)。
五、上机时间。
11.24(周一)上午8:00——12:
15,12.1,12.8,12.
15整个下午,共20课时。地点:计算中心大机房。
不强制每次都去,但鼓励到场,期间任何一次上机都可以找助教验收。
汇编上机作业
微机原理上机实验报告 一 班级 学号姓名 实验目的。掌握汇编语言程序的上机过程与debug调试方法。实验内容。比较两个字符串string1和string2所含的字符是否相同。若相同则显示 match 否则,显示 no match 一 源程序见资料。二 按照上课所讲的操作步骤对以上所给源程序进行调试,...
汇编上机作业
指令系统练习。1.指出下列的错误并更正 very,block均为偏移量 mov ds,very mov very si es bl mov block dx si al mov very,block 2.在指令push ax的执行过程中,要进行的操作是 sp 2 sp sp 1 sp sp 2 sp...
北理工汇编上机实验
实验3 字符匹配程序 从键盘上输入一个字符串,回车结束并回显。用串操作指令设计程序,实现在输入的字符串存储区中寻找空格字符,退出时给出是否找到的信息,并给出具体位置。流程图 三 源 datas segment s1 db 14h,50 dup 0 d1 db 100,0,100 dup 0 d2 d...