汇编课程设计报告

合集下载

汇编语言课程设计报告

汇编语言课程设计报告

汇编语言课程设计报告( 2013 -- 2014 年度第1 学期)课题名称:磁盘文件管理系统专业计算机科学与技术(网络技术)学生姓名班级学号指导教师完成日期目录1 设计目的 (1)2 概要设计 (1)2.1系统总体分析 (1)2.2主模块框图及说明 (1)3 详细设计 (3)3.1主模块及子模块说明 (3)3.2各模块详细设计 (5)3.2.1 主界面模块 (5)4 程序调试 (5)4.1运行界面分析 (5)4.2调试过程及分析 (7)5 心得体会 (9)5.1设计体会 (9)5.2系统改进 (10)参考文献 (11)附录 (12)附录1源程序清单 (12)附录1.1 磁盘文件管理系统模块源程序 (12)1 设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。

学会查阅和汇编语言相关的规范,手册等技术资料。

能正确绘制和使用流程图。

掌握汇编语言程序设计和程序调试的基本技能,能进行基本的软件设计。

“汇编语言”课程设计是计算机应用开发人员必须接受的最重要的专业训练之一,是计算机软、硬件的基础,利用汇编语言编写程序可以是我们更清楚地了解计算机是怎样完成复杂工作的,理解计算机对系统中各种设备的调度,从而从根本上认识计算机的工作原理,对课程所学理论知识的深化和提高。

因此,课程设计要求同学们熟悉汇编语言的编程,BIOS中断调用、dos系统功能调用、磁盘数据的查询、存取等相关知识。

通过课程设计,可以提高运用汇编语言编程解决实际问题的能力,为以后的学习和系统开发奠定良好的基础。

2 概要设计2.1 系统总体分析实现对磁盘文件的管理。

创建文件,向磁盘文件中写入信息,从磁盘文件中读出信息并显示,退出程序。

如果向磁盘中写入信息或者从磁盘中读取信息失败屏幕会显示打开文件错误的提示。

根据提示输入字符,如果输错可以返回并且从新输入。

汇编课程设计报告

汇编课程设计报告

汇编课程设计报告学号:课程设计题目打印水仙花数学院计算机科学与技术专业计算机科学与技术班级姓名指导教师武汉理工大学《汇编语言程序设计》课程设计2012 年 6 月28 日课程设计任务书学生姓名:专业班级:指导教师:工作单位:计算机科学与技术学院题目: 打印水仙花数初始条件:理论:完成了《汇编语言程序设计》课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。

实践:完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)进一步理解和掌握较复杂程序的设计方法,掌握子程序结构的设计和友好用户界2.1简要分析2.1.1原理说明可以用标签来接收三位数,标签的好处在于可以限制输入的位数,并且通过实际输入位数可以直接进行一部分的异常处理。

将数存到标签后,因为是以ASCII码的形式存的,所以需要进行转换,将其变成十六进制数,转换后将数字存到申请的内存字中。

在转换成十六进制数的过程中,可以对输入的数进行异常处理,判断是否输入有误。

在输出水仙花数时,设置一个计数器,从100开始循环判断,直到等于用户输入的数为止,依次判断是否为水仙花数,决定是否输出该数。

在输出时,分别取出水仙花数的个、十、百位数,转换成ASCII码再输出。

系统提示是否继续后,程序对用户输入的信息进行判断,若为y或Y则系统回到初始状态,若为n或N则退出系统,若为其他则提示输入错误并重新输入。

2.1.2程序流程图是否继续2.2 数据段设计data segmentmess1 db 0dh,0ah,'Please input a nubmer(100<=number<=999):','$'mess2 db 0dh,0ah,'Do you want to continue(y/n)? ','$' mess3 db 0dh,0ah,'shuixianhuashu:',0ah,'$'error db 0dh,0ah,'Input error,please input again!','$' numpar label bytemax db 4act db ?numfld db 4 dup(?);存放输入的字符串,设定了最大长度,避免错误。

汇编程序设计课程设计报告

汇编程序设计课程设计报告

汇编程序设计课程设计报告题目:实时钟显示与定时控制设计班级:计算机科学与技术姓名:韩云飞指导老师:段新娥日期:2010.12《汇编语言程序设计》课程设计前言随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。

而汇编语言做为计算机专业大学生必修之课,每个做为本专业的学生对汇编的理解和学习就显的尤为重要。

汇编语言是计算机能够提供给用户使用的最快而又最好最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显的必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。

汇编语言是理解整个计算机系统的最佳起点和最有效途径,人们经常认为汇编语言的应用范围很小,而忽视它的重要性。

其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。

所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。

所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。

机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。

汇编语言直接描述机器指令,比机器指令容易记忆和理解。

通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。

学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点。

这次课程设计是在教学及实验基础上,对课程所学理论知识的深化和提高。

通过具体的问题分析、设计、调试、运行程序,在实际问题中锻炼提高自己,增加对本门课程内容的理解,锻炼我们的动手能力。

目录一.课程设计目的 (1)二.课程设计要求 (1)三.课程设计内容 (1)四.设计步骤 (2)五.设计程序流程图 (3)六.心得体会 (7)七.参考文献 (8)八.程序源代码 (9)一.课程设计目的“汇编语言”课程设计是在教学及实验基础上,对课程所学理论知识的深化和提高。

51汇编电子琴课程设计

51汇编电子琴课程设计

51汇编电子琴课程设计一、课程目标知识目标:1. 学生能理解51汇编语言的基本原理,掌握与电子琴相关的硬件控制方法。

2. 学生能掌握电子琴音阶、音调和音符的基础知识,并能运用51汇编语言实现音符的播放。

3. 学生了解电子琴的电路原理,能分析并描述51汇编在电子琴中的应用。

技能目标:1. 学生能运用51汇编语言编写程序,实现电子琴的基本功能,如播放音符、和弦等。

2. 学生能够通过编程解决实际问题,如调试程序、优化代码等。

3. 学生培养团队协作能力,通过小组合作完成一个具有实际功能的电子琴项目。

情感态度价值观目标:1. 学生培养对编程和电子制作的兴趣,激发创新精神。

2. 学生在课程学习中,培养耐心、细心和专注的品质,提高解决问题的能力。

3. 学生通过课程学习,认识到编程与实际生活的联系,增强学以致用的意识。

本课程针对高年级学生,结合学科特点和教学要求,将知识目标、技能目标和情感态度价值观目标进行分解,旨在使学生在掌握汇编语言基础知识的同时,提高实际动手能力和团队合作能力,培养对编程和电子制作的兴趣,为后续学习奠定基础。

二、教学内容本课程教学内容以《51单片机原理与应用》教材为基础,结合课程目标,组织以下内容:1. 51单片机基础知识:介绍51单片机的内部结构、工作原理及编程环境。

2. 汇编语言基础:讲解汇编指令、寄存器、伪指令等基本概念。

3. 电子琴硬件原理:分析电子琴的电路原理,介绍相关元件及其功能。

4. 音符与音阶编程:教授如何用51汇编语言实现音符、音阶的编程控制。

5. 电子琴程序设计:指导学生编写程序,实现电子琴的基本功能。

6. 项目实践:分组进行项目实践,完成一个具有实际功能的电子琴制作。

教学内容安排和进度如下:第一周:51单片机基础知识学习,了解汇编语言环境。

第二周:汇编语言基础,学习汇编指令和寄存器。

第三周:电子琴硬件原理,学习相关元件及其功能。

第四周:音符与音阶编程,编写相关程序。

第五周:电子琴程序设计,完善程序功能。

课程设计报告--汇编程序设计(进制转换)

课程设计报告--汇编程序设计(进制转换)

课程设计报告--汇编程序设计(进制转换)汇编语言课程设计报告:代码与数制之间的转换内容提要:本课程设计的主要内容是代码与数制之间的转换~程序的主要功能如下:1. 将十六进制数转换成其对应的ASCII码2. 将ASCII码转换成其对应的十六进制数3. 实现二进制数与十六进制数之间相互转换4. 实现十进制数与二进制数之间相互转换5. 实现十六进制数与十进制数之间相互转换数制转换是计算机科学技术中最为基础的运算~在日常生活中~人们习惯性地使用十进制数进行计算。

而在计算机内部~所有的信息,数、字符、汉字、计算机的指令、状态,都是用二进制数来表示的。

在计算机中~二进制数的运算、处理比十进制数的更容易实现。

有时为了缩短书写~在计算机中还采用十六进制数。

所以~我们需要把数从二进制数形式转换成其他进制的形式~甚至在不同的进位制之间进行转换。

- 1 -汇编语言课程设计报告:代码与数制之间的转换目录一、前言〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 1.1 程设计的目的〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 1.2 代码与数制之间的转换程序的意义〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 1.3 数制之间的转换程序的主要功能〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3正文〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 二、2.1 代码与数制之间相互转换程序的设计大纲〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 2.2 代码与数制之间相互转换程序的结构图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 2.3 友好交互界面结构图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃5 2.4 程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.4.1 主程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.4.2 键盘输入子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.4.3 ASC码转16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃72.4.4 16进制转ASC进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃82.4.5 2,16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃82.4.6 2?16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃92.4.7 16?2进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃92.4.8 2~10进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃102.4.9 2?10进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃102.4.10 10?2进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃112.4.11 10~16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃112.4.12 10?16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃122.4.13 16?10进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃12三、源程序及其注释〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃13四、课程设计体会〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃29五、参考文献〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃29- 2 -汇编语言课程设计报告:代码与数制之间的转换课程设计题目:代码与数制之间的转换一、前言1.1 课程设计的目的, 加深对汇编语言课程理论方面的理解, 通过编写一定规模和难度的程序,进行一次较全面的汇编编程训练,提高分析问题和解决问题的能力, 提高调试程序的能力1.2 代码与数制之间的转换程序的意义数制转换是计算机科学技术中最为基础的运算,在日常生活中,人们习惯性地使用十进制数进行计算。

王爽《汇编语言》课程设计一

王爽《汇编语言》课程设计一

课程设计(一)一、有除法溢出的dtoc子程序为:dtoc: push cxs:mov cx,10call divdw ;进行16位除法,被除数低16位存放在ax中,高16位存放在dx中,除数为10,存放在cx中,并调用不会产生溢出的除法运算的子程序divdwadd cx,30h ;将余数加上30h,就得到十进制数码字符对应的ASCII 码mov [si],cx ;将十进制数码字符对应的ASCII码存放在数据段中inc sipush ax ;保存此时的axadd ax,dx ;商是由ax和dx中的数据组合而成,为了判断商是否为0 mov cx,ax ;将商的高16位和低16位加起来,送给cxpop ax ;恢复axjcxz ok ;若商为0,则结束子程序jmp short sok: mov byte ptr [si],0 ;在字符串的结尾添个0call back ;调用把字符串反过来的子程序backpop cxretdivdw:mov bx,axmov ax,dxmov dx,0div cxpush axmov ax,bxdiv cxmov cx,dxpop dxretback:push dipush cxmov cx,simov di,0s1:mov al,[di]mov ah,0push axinc diloop s1mov di,0mov cx,sis2:pop axmov [di],alinc diloop s2pop cx二、课程设计首先,定义数据的时候,定义了一个栈段,在data段的开始定义了一个有10字节的空间,用来把数据转换成十进制形式的字符串,后面的总收入、雇员数、人均收入均为dword数据,方便后面统一来进行循环处理。

其次,刚开始的时候,用一个循环来计算人均收入,并把得到的数据放在data段中(在data段中定义了21个为0的dword数据用来存放人均收入)。

再次,在总体思路上,就是先定义一个32*21个字节的table段,把分别用子程序dtoc 把每个用二进制存放的数据转换成对应的十进制字符串,把字符串存放到table段中相应的位置,通过四个循环能把所有数据对应的字符串存放到table段中,这时的table 段中的存储模式与要求显示在屏幕上的模式一样,所以可以用一个双重循环将table 中的内容一个字节一个字节地复制到显示缓冲区的偶地址上,奇地址存放字符的颜色属性白色07h。

汇编课程设计报告

汇编课程设计报告

- 3 -编密码概述汇编语言:是用英文缩写形式的助记符书写指令。

汇编语言是一种面向CPU指令系统的程序语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址。

用汇编语言编写程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程成为汇编,完成汇编任务的程序称为汇编程序。

所以我在MASM汇编程序中进行汇编,通过相应的代码来调用相应的指令实现编密码一、设计要求(小标题一律用宋体小四加粗) 要求:按照以下规律编密码:1.字母A 变为E,a 变为e即是字母变成其后面的第4 个字母。

2.但Ww变Aa,Xx 变Bb,Yy 变Cc,Zz 变为Dd.3.非字母不变如1234567890,!@$4.并可以循环转换5.例如“123CHINA@”变为“123GLMRE@二、设计思想首先,先定义两个缓存区,一个用来存放输入的密码(BUF2),一个用来存放变换后的密码(BUF3)。

先输入一个十位数内的密码,然后一一对一个个字符进行判断。

先判断ascall 是否小于41H,如果是则不是字母那就不变换直接转到read1,存入BUF3。

如果大于41H 在判断是否大于61H即判断是不是小写的,如果小于的话在判断大于5bH吗?如果大于则不是字母那就不变换直接转到read1,存入BUF3。

如果小于的话,在判断是不是大于w的ascall,如果大于就转到read3,减22在,存入buf3.否则转到read4,加4在存入BUF3。

如果大于等于61H的话,同样的道理,判断是否大于W,如果大于在判断大于7AH吗。

判断是不是字母,如果不是那就不变换直接转到read1,存入BUF3。

否则转到read3减22,在存入BUF3。

如果没有大于77H,直接转到read4,加4在存入BUF3。

最后将变换后的密码输出来。

输出后并将其转到qing,既将BUF2和BUF3缓存区的数据清空,在回到start1,重新输入一个字符串并对它进行编密码转换。

汇编语言课程设计2

汇编语言课程设计2

汇编语言 课程设计2一、课程目标知识目标:1. 让学生掌握汇编语言的基本概念,包括寄存器、指令、寻址方式等;2. 培养学生运用汇编语言进行程序设计的能力,能够编写简单的汇编程序;3. 使学生了解汇编语言与硬件的关系,理解计算机的工作原理。

技能目标:1. 培养学生运用汇编语言进行问题分析、程序设计和调试的能力;2. 培养学生熟练使用汇编语言开发工具,如汇编器、链接器等;3. 培养学生具备一定的计算机硬件操作能力,能够进行基本的汇编指令执行过程分析。

情感态度价值观目标:1. 培养学生对计算机科学的兴趣,激发学习汇编语言的积极性;2. 培养学生具备良好的编程习惯,注重程序的可读性和效率;3. 培养学生具备团队协作意识,能够在小组合作中发挥各自优势,共同解决问题。

课程性质分析:本课程为计算机科学与技术专业核心课程,旨在培养学生的计算机底层编程能力,加深对计算机硬件和软件的深入理解。

学生特点分析:学生具备一定的计算机基础和编程能力,但可能对汇编语言较为陌生,需要从基本概念入手,逐步引导学生掌握汇编语言编程技巧。

教学要求:1. 结合实际案例,注重理论与实践相结合,提高学生的实际操作能力;2. 采用任务驱动法,引导学生主动探究,培养学生的自主学习能力;3. 强化实践环节,注重个体差异,提供针对性的辅导和指导。

二、教学内容1. 汇编语言基础知识:- 寄存器概念与分类- 指令系统与指令格式- 常用汇编指令及其功能- 数据表示与寻址方式2. 汇编语言程序设计:- 程序结构及伪指令- 汇编程序编写与调试方法- 简单程序设计实例分析- 子程序设计与调用3. 汇编语言与硬件的关系:- 计算机硬件工作原理概述- 指令执行过程分析- 中断与异常处理- 存储器组织与管理4. 实践环节:- 使用汇编语言开发工具进行程序编写与调试- 常见汇编程序案例分析- 小组项目:设计并实现一个简单的汇编程序教学内容安排与进度:第一周:汇编语言基础知识(1-2章)第二周:汇编语言程序设计(3-4章)第三周:汇编语言与硬件的关系(5-6章)第四周:实践环节(7章)教材章节关联:1. 汇编语言基础知识:对应教材第1-2章内容2. 汇编语言程序设计:对应教材第3-4章内容3. 汇编语言与硬件的关系:对应教材第5-6章内容4. 实践环节:对应教材第7章内容教学内容确保科学性和系统性,结合实际案例,使学生能够循序渐进地掌握汇编语言知识,提高编程能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四川大学计算机学院学生实验报告实验名称:汇编课程设计报告指导教师:唐宁九姓名:廖偲学号:0943111209班级:软件09级一班日期:20101114实验报告班级______________姓名_______________学号_________一、实验一:DEBUG基本命令与数据传输指令二、实验的目的和要求:• 1.熟练掌握DEBUG的基本调试命令,能够使用DEBUG编写、调试汇编语言程序片段。

• 2.在理解数据传输指令的基础上按照实验内容中指定的程序片段对程序进行调试和记录;三、实验的环境:1.硬件环境:cpu2.26gHZ、内存2G、显存1G、64位总线笔记本电脑2.软件环境:win7 32位操作系统、8086/8088指令集系统(在windows系统中)、masm的汇编工具。

四、源程序清单:•MOV AL, 01H•MOV SI, 0002H•LEA SI, [SI]•MOV BYTE PTR [SI], 80H•LAHF•XCHG AL, AH•SAHF•XCHG AH, [SI]•SAHF五、操作内容:1.从cmd在debug下进入用A命令进行汇编格式: A [地址]功能:从键盘输入汇编程序, 并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。

如果不指定汇编地址, 则以CS:IP为地址2. 反汇编命令U使用格式: U [地址]/[地址范围]功能: 将指定地址范围内的机器代码翻译成汇编源程序指令显示出来, 并同时显示地址及代码。

注意: 反汇编时一定确认指令的起始地址, 否则得不到正确的结果。

3.寄存器查看/编辑命令r或r寄存器名称功能: 显示当前所有寄存器内容, 状态标志及将要执行的下一条指令的地址、代码和汇编指令形式。

4. 跟踪运行命令T格式: T [=起始地址] [指令条数]功能: 逐条跟踪程序的运行, 同时显示出各寄存器的内容、状态标志和下一条要执行的指令, 当执行够指定的指令数后就暂停程序的运行。

说明: 如果不指定起始地址, 则从CS:IP处开始执行。

不指定指令条数时, 认为只执行一条指令。

六、运行结果:1.debug中a命令使用2.u命令3.r命令4.t命令七、实验运行情况分析。

1.使用t单步调试时每条指令(DS=1422H)MOV AL, 01H ;AX寄存器低8位至为01H,标志寄存器无变化MOV SI, 0002H ;SI寄存器置为0002H,标志寄存器无变化LEA SI, [SI] ;LEA将16位源操作数有效地址给目的地址,SI不变还是0002H;标寄存器无变化MOV BYTE PTR [SI], 80H ;将一个字节80H存入内存DS:[SI]中(1422H:0002H =80H)LAHF ;将Flag寄存器低8位存入AH中,AX=0201HXCHG AL, AH ;将AL和AH中的数据互换AX=0102HSAHF ; 将AH存入Flag寄存器低8位中为01H,CF标志位变为1XCHG AH, [SI] ; AH和内存中DS:[SI]中数据互换AH=80H,1442H:0002H=01HSAHF ; 将AH存入Flag寄存器低8位中为80H,CF=0,TF=1这个程序片段展示了LEA、LAHF、SAHF、XCHG这几个命令使用,标志寄存器的一些标志位实验报告一、实验二:DEBUG基本命令与算术运算指令二、实验的目的和要求:•熟练掌握DEBUG的基本调试命令,能够使用DEBUG编写、调试汇编语言程序片段。

•在理解算术运算指令的基础上按照实验内容中指定的程序片段对程序进行调试和记录;三、实验的环境:1.硬件环境:cpu2.26gHZ、内存2G、显存1G、64位总线笔记本电脑2.软件环境:win7 32位操作系统、8086/8088指令集系统(在windows系统中)、masm的汇编工具。

四、源程序清单:•MOV WORD PTR [0100H], 5564H•MOV WORD PTR [0102H], 0C279H•MOV AX, [0100H]•PUSH AX•ADD AL, [0102H];说明标志位是如何确定的•ADC AH, [0103H];说明指令执行原理,包括标志位•MOV [0104H], AX•POP AX•SUB AL, [0102H] ;说明标志位是如何确定的•SBB AH, [0103H];说明指令执行原理,包括标志位•MOV [0106H], AX五、操作内容:1. 断点调试命令G格式:g 或g [起始地址][断点地址]功能:从当前CS、IP指示的位置开始连续执行程序,执行到指定断点处(不包括断点地址指示的指令)暂停执行,在屏幕上显示CPU现场。

2. 内存单元查看命令D格式:D (默认)或D [地址]功能:查看指定地址开始的内存区域中各内存单元的内容。

3.内存单元修改命令E格式:E [地址]功能:修改指定地址内存单元的内容。

六、运行结果:1.g命令的使用2.D命令的使用3.E命令的使用七、实验运行情况分析。

MOV WORD PTR [0100H], 5564H ;一个字的内容5564H放到内存中DS:[0100H] MOV WORD PTR [0102H], 0C279H ;同理0c279H放到内存[0102H]中MOV AX, [0100H] ;5564H传入AXPUSH AX ;AX数据送入堆栈段sp指向位置sp自减保存AXADD AL, [0102H] ;64H+79H=DDH源操作数与目的操作数相加结果存入目的操作数;SF=1与最高位保持一致(不为补码时无意义);PF=1二进制中有偶数个一;OF=1判断:最高位和次高位进位异或值;CF=0最高位无进位、借位;其他位无变化;操作数解释为补码时溢出,无符号数不溢出ADC AH, [0103H];DEST+SRC+CF=>DEST,55H+C2H+0=1 17H;CF=1最高位有进位;OF=0 判断:最高位和次高位进位异或值;PF=1有偶数个1;程序员把操作数解释为无符号数溢出,补码不溢出MOV [0104H], AX ;结果存入内存POP AX ;出栈恢复AXSUB AL, [0102H] ;DEST-SRC=>DEST, 64H-79H=0EBH;SF=1 最高位为一;CF=1 最高位有借位;AF=1 第四位有借位;PF=1 1为偶数个;无符号数出现溢出,有符号数无溢出SBB AH, [0103H];DEST-SRC-CF=>DEST, 55H-C2H-1=92H;CF=1最高位有借位;SF=1 最高位为一;OF=1最高位和次高位进位异或值为1;不论为有符号或无符号数都溢出MOV [0106H], AX ;结果存入内存这个小程序演示了ADD、ADC和SUB、SBB连用展示超过8位时两次加减来表示16位加减以及其中对标志位的影响。

实验报告一、实验三:编制完整的汇编语言源程序二、实验的目的和要求:•掌握编写完整汇编语言源程序的方法,掌握汇编、连接等将源程序转换为可执行代码的必要步骤。

•在理解逻辑运算指令原理的基础上,按照实验要求的功能编写完整程序,生成可执行文件后,使用DEBUG对程序进行调试。

三、实验的环境:1.硬件环境:cpu2.26gHZ、内存2G、显存1G、64位总线笔记本电脑2.软件环境:win7 32位操作系统、8086/8088指令集系统(在windows系统中)、masm的汇编工具、emu8086(8086模拟器)。

四、源程序清单:DATA segmentVAR1 db 35hVAR2 dd 0E2597455HRES1 db 0RES2 db 0DATA endscode segmentASSUME DS:data,cs:codestart:mov ax,datamov ds,axMOV CL,4MOV AH,VAR1MOV AL,VAR1AND AL,0FHMOV RES2,ALAND AH,0F0HSHR AH,CLMOV RES1,AHMOV CX,2LOOP1: SHL VAR2,1RCL VAR2+2,1LOOP LOOP1MOV AH,4CHINT 21Hcode endsend start五、操作内容:•编写一个完整源程序完成如下功能:1)设定字节型变量VAR1的内容为35H,编写程序将VAR1的高4位与低4位分离,分别作为低4位保存在RES1和RES2中,这两个变量高4位置0。

2)设定32位(二进制)数据0E2597455H(注:最高位为E)保存在变量VAR2中,将该变量中的内容算术左移2位,所得结果仍然保存在VAR2中。

六、运行结果:运行前运行后七、实验运行情况分析。

1)在VAR1处理过程中使用AND、SHR指令:AND指令分别用0FH、0F0H提取VAR1低和高四位放入AL、AH,在用SHR让AH右移四位最高位依次补0。

分别存入RES1、RES2中。

AND AL,0FH ;AL=05H PF=1AND AH,0F0H;AH=30H PF=1SHR AH,CL;标志位无变化AH03H2)在VAR2处理过程中使用SHL、RCL对32位VAR2实现左移。

(分析第一次循环)LOOP1: SHL VAR2,1 ;左移一位最低位补0 VAR2 = CC;SF=1 OF=1 CF=0 PF=1RCL VAR2+2,1 ;加上CF左移最高位移入CF,CF移入最低位;CF=1 SF=1 PF=1 OF=0LOOP LOOP13)如果VAR2解释为有符号数乘以4为负数结果为负数未出现溢出(SF=1)解释为无符号数乘以4结果溢出实验报告一、实验四:分支与循环结构程序设计二、实验的目的和要求:•掌握分支、循环结构程序设计方法,重点掌握结合程序流程图设计分支、循环结构入、出口的方法。

•掌握使用DEBUG调试分支、循环结构的方法。

三、实验的环境:1.硬件环境:cpu2.26gHZ、内存2G、显存1G、64位总线笔记本电脑2.软件环境:win7 32位操作系统、8086/8088指令集系统(在windows系统中)、masm的汇编工具,emu8086。

四、源程序清单:编写的统计数组中奇数和偶数的个数,统计结果分别保存在ODDNUM和EVENNUM单元中。

DATA segmentVAR DB 14,-25,66,-17,78,-33,46DB -96,71,80ODDNUM DB 0EVENNUM DB 0DATA endscode segmentASSUME DS:data,cs:codestart:MOV AX,DATAMOV DS,AXMOV BX,0MOV CX,0AHLEA SI,VARLO: MOV AL,[SI]CMP AL,0JG L1NEG ALL1: TEST AL,01HJZ L2INC BLJMP L3L2: INC BHL3: INC SILOOP LOMOV ODDNUM,BLMOV EVENNUM,BHMOV AH,4CHINT 21Hcode endsend start五、操作内容:1)1.无条件跳转指令段内直接转移:JMP 标号或JMP NEAR 标号指令功能:(IP)+(DISP)=>IP指令将程序流程转向目标地址,CPU下一条指令变成目标指令,DISP(-128~127)段内间接转移:JMP 16位通用寄存器或字类型的内存单元指令功能:(16位寄存器)=>IP或(字类型的内存单元)=> IP 将16位的寄存器或内存单元的内容解释为目标地址,送入IP转入目标地址。

相关文档
最新文档