合肥工业大学汇编程序设计实验报告完整代码_第1页
合肥工业大学汇编程序设计实验报告完整代码_第2页
合肥工业大学汇编程序设计实验报告完整代码_第3页
合肥工业大学汇编程序设计实验报告完整代码_第4页
合肥工业大学汇编程序设计实验报告完整代码_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、合肥工业大学计算机和信息学院实验报告课程:汇编语言编程专业课:信息安全13-1学号:名字:马俊使用实验调试程序一.实验目的1.熟悉DEBUG程序中的命令,并学习在DEBUG中调试程序集语言源程序。2,确定8086/8088寻址方法和多字节数据处理方法。二、实验内容1、在DEBUG程序中,使用“e”命令将两个多字节数“003F1AE7H”和“006BE5C4H”发送到两个单元,每个单元的起始地址分别为DS:0200H和ds33600204h。2、使用直接寻址和寄存器间接寻址方式创建程序段,以添加DS:0200H单元和DS33600204H单元的数据,并将结果存储在DS33600208H单元中。要

2、求:这次实验的内容都是在DEBUG中为了加载、修改、显示数据而完成的。汇编语言程序段编辑、汇编和反汇编;运行程序并检查结果三.实验过程和程序实验将“H”和“FEDCBA98H”分别发送到起始地址为DS3360200H和DS:204H的两个单元。还包括另外两个问题,以DS:0000H开头的5个16位符号将x、y、z、v、w和e命令分别初始化为540,1和-1,1080,0。w=(四。实验结果(包括所需的屏幕快照)将两个多字节数“003F1AE7H”和“006BE5C4H”分别发送到起始地址为DS:0200H和DS:0204H的两个单元。直接寻址方法实现数据添加。添加寄存器间接寻址数据其他问题1:

3、以DS:0000H开头的5个16位符号分别以x、y、z、v和w开头,以e命令开头初始化对象:540,1,-1,1080,0,测试w=(v-(x*y z-540)/x附加问题2:在BX中完成1数的统计。V.实验经验通过这次实验,我知道了使用debug的各种指令。同时在debug中编程比较麻烦。这是第一次写汇编程序,所以需要更多的练习。实验2汇编语言编程(顺序、周期)一.实验目的1、主序和循环程序结构及设计方法;2.熟悉在PC上设置、装配、连接、调试和运行8086/8088汇编语言程序的流程。二、实验内容1、x、y、z和v都是文字变量,是x、y、z和v文字单元中具有16位符号的数字。编写汇编语言程

4、序以完成以下功能:计算表达式值(v(x * y z-720)/x;将上述表达式计算结果的整数放在单元格SUM1中,将其馀的放在单元格SUM2中。2.平均一个班50名学生的成绩(额外的问题:最大值和最小值,显示结果)3.从键盘读取字符串,以Enter结尾。字符串不能超过50个字符。列印字串(其他问题:找出中间是否有 ASM 子字串。如果存在,则输出“是”。否则,输出“no”。三.实验过程和程序1,计算表达式值(v(x * y z-720)/x;Data segmentX dw 021chY dw 0001hZ dw 0ffffhV dw 0438hW dw 0000hSum1 dw?Sum2 d

5、w?data endesAssume cs:代码,ds:数据Code segmentStart:Mov ax、dataMov ds,axMOV AX,xIMUL Y;X*yMOV CX、AXMOV BX,DXMOV AX,ZCWDADD CX、AXADC BX,DX : X*y zSUB CX,540;-嗯?SBB BX,0;X*y z-540MOV AX,VCWDSUB AX、CLARiiONSBB DX、BX;V-(x*y z-540)IDIV X;(v-(x * y z-540)/XMov sum1,axMov sum2、dxMov ax,4c00hInt 21h代码恩德斯End sta

6、rt2.平均一个班50名学生的成绩(额外的问题:最大值和最小值,显示结果)Data segmentDb 7,49 dup(6)最大数据库数?Min db?Result db 0data endesAssume cs:代码,ds:数据Code segmentStart: mov ax、dataMov ds,axMov ax,0Mov cx,50Mov di,0Again:Mov bx,0Mov bl,diAdd di,1Add ax,bxLoop againMov bl,50Div blMov result,alMov di,50最高2: sub di,1Mov cx,50Mov si,0Mov

7、 al,diMax1: CMP al,siJb max2Add si,1回路最多1Mov max,alMov di,50Min2:sub di,1Mov cx,50Mov si,0Mov al,diMin1: CMP al,siJnb min2Add si,1Loop min1莫宾,阿尔Mov ax,4c00hInt 21h代码恩德斯End start3.从键盘读取字符串,以Enter结尾。字符串不能超过50个字符。列印字串(其他问题:找出中间是否有 ASM 子字串。如果存在,则输出“是”。否则,输出“no”。Data segmentData2 db 50,50 dup($)String db

8、 yes$String1 db no$data endesAssume cs:代码,ds:数据Code segmentStart: mov ax、dataMov ds,axMov ah,0ahMov dx,offset data2Int 21hMov ah,2hMov dl,0ahInt 21hMov ah,2hMov dl,0dhInt 21hMov dx,offset data2 2Mov ah,09hInt 21hMov ah,2hMov dl,0ahInt 21hMov ah,2hMov dl,0dhInt 21hMov al,0hMov cx,47Mov di,0Again: mov

9、 al,di 2Cmp al,61hjnz nextMov al,di 3Cmp al,73hjnz nextMov al,di 4Cmp al,6dhjnz nextJmp示例Next: add di,1Loop againMov dx,offset string1Mov ah,09hInt 21hJmp endcodeYes:mov dx,offset stringMov ah,09hInt 21hEndcode: mov ax,4c00hInt 21h代码恩德斯End start四。实验结果(包括所需的屏幕快照)1,计算表达式值(v(x * y z-720)/x;2.平均一个班50名学生

10、的成绩(额外的问题:最大值和最小值,显示结果)0030地址为平均值的商人0032地址为最大值0034地址为最小值3.从键盘读取字符串,以Enter结尾。字符串不能超过50个字符。列印字串(其他问题:找出中间是否有 ASM 子字串。如果存在,则输出“是”。否则,输出“no”。V.实验经验通过这次实验,了解了符号扩展指南的使用。在第二个程序和输出时,必须在输入的字符串的末尾添加结束标志“$”,并且必须在输出字符串之前输出回车。否则,在回车后无法查看输出。实验3汇编语言子程序设计(分支,子程序)一.实验目的1、掌握分支和子程序结构和设计方法;2.熟悉在PC上设置、装配、连接、调试和运行8086/8088汇编语言程序的流程。3、通过汇编语言理解高级语言的参数传递等。二、实验内容1,BL中只有一个等于1。创建程序测试,并输出提示信息“The X Bit is 1”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论