汇编实验2 顺序程序设计

合集下载

实验2 顺序与分支汇编语言程序设计实验

实验2 顺序与分支汇编语言程序设计实验

ARM技术原理与应用实验报告实验2 顺序与分支汇编语言程序设计实验专业电子信息工程班级14电信班学生姓名陈定光学号2014010243101指导教师曹计昌2017年4月19 日实验2 顺序与分支汇编语言程序设计实验1、实验目的(1)掌握顺序结构汇编语言程序设计;(2)掌握分支结构汇编语言程序设计;(3)掌握AXD环境下顺序结构和分支结构汇编语言程序的运行、调试。

2、实验要求1、实验必须在在ADS1.2环境下进行。

2、工程名、汇编语言源文件名按照下面规则命名:工程名:pj+学号最后4位+其它字符汇编语言源文件名:p+学号最后4位+其它字符+.s例如:张维智同学学号最后4位是3134因此,pj3134、pj3134a、pj31341等都是允许的工程名;而 p3134a.s、p3134b.s等都是允许的源文件名。

3、实验报告中需要说明实验中在ADS、AXD环境下进行的实际操作;4、实验报告中应给出实际的实验操作、编写的源程序、及计算机的调试观察结果;5、按照规定格式打印实验报告。

3、实验内容1、编写程序p2xxxx1.s完成下面任务:(1)将1、2、3、4、5、6、7、8依次传送给寄存器R1-R8;分析:如上图显示,寄存器r1-r8分别是存放1-8(2)用STMIA指令将R1-R8保存到刚好能够存储8个字数据ARY_A数组中。

分析:如上图显示,地址0x8058-0x8078分别存放1-8(3)用STMIB指令将R1-R8保存到刚好能够存储8个字数据ARY_B数组中。

分析:如上图显示,地址0x8088-0x80A7分别存放1-8(4)用STMDA指令将R1-R8保存到刚好能够存储8个字数据ARY_C数组中。

分析:如上图显示,地址0x8094-0x80B3分别存放1-8(5)用STMDB指令将R1-R8保存到刚好能够存储8个字数据ARY_D数组中。

(6)用LDMIA指令将ARY_A数组中数据5、6、7、8传送到R1-R4寄存器。

汇编语言-实验二 循环与子程序程序设计

汇编语言-实验二 循环与子程序程序设计

汇编语言-实验二循环与子程序程序设计
实验目的
本实验旨在通过学习循环和子程序的概念和使用方法,掌握汇
编语言中循环和子程序的程序设计技巧,培养学生的程序设计能力。

实验内容
1. 循环程序设计:编写一个循环程序,实现指定次数的循环操作。

2. 子程序程序设计:编写一个子程序,实现指定功能的模块化
程序设计。

实验步骤
循环程序设计
1. 根据实验要求确定需要循环的次数。

2. 初始化循环计数器,将循环计数器置为0。

3. 判断循环计数器是否达到循环次数的要求,如果达到则跳出
循环,否则继续执行循环体。

4. 执行循环体的操作。

5. 循环计数器自增1。

6. 返回到第3步继续判断循环条件。

子程序程序设计
1. 根据实验要求确定需要实现的功能。

2. 将要实现的功能封装在一个子程序中,确定输入参数和输出结果。

3. 在主程序中调用子程序完成指定的功能。

4. 如果需要,可以在子程序中调用其他子程序实现更复杂的功能。

实验
本次实验通过编写循环和子程序的程序设计,加深了对汇编语言中循环和子程序的理解。

循环程序设计能够实现重复执行指定次数的操作,提高了程序的效率;子程序程序设计能够实现模块化和可重用性,提高了程序的可读性和可维护性。

通过实践,进一步掌握了汇编语言的程序设计技巧,加深了对汇编语言的理解和应用能力。

参考资料
汇编语言程序设计教程
汇编语言程序设计实验指导书。

汇编实验二--顺序程序设计

汇编实验二--顺序程序设计

福建农林大学金山学院实验报告系:信息与机电工程专业:电子信息技术年级: 10姓名:学号: 1002010 实验课程:汇编语言实验室号:____67___ 实验设备号: E 实验时间:指导教师签字:成绩:实验二顺序程序设计1.实验目的和要求1.学习使用DEBUG的命令;2.使用DEBUG命令在数据段中查看程序运行的结果;3.利用DEBUG运行简单的程序段。

2.实验环境实验的硬件环境是:IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。

3.实验内容及实验数据记录1)输入程序观察寄存器变化使用DEBUG,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。

注意用T命令执行时,CS: IP寄存器的内容MOV AX, 4E20ADD AX, 1416MOV BX, 2000ADD AX, BXMOV BX, AXADD AX, BXMOV AX, 001AMOV BX, 0026ADD AL, BLADD AH, BLADD BH, ALMOV AH, 0ADD AL, BLADD AL, 9C2)下列程序单步运行,注意AL,BX,CX寄存器的变化,并观察数据段字母的变化。

DSEG SEGMENTMSG1 DB ‘abc’DSEG ENDSCSEG SEGMENTASSUME CS: CSEG, DS: DSEGSTART: MOV AX, DSEGMOV DS, AXLEA BX, MSG1MOV CX, 3S: MOV AL, [BX]AND AL, 11011111B ;将AL中的ASCII码的第5位置0,;变成大写字母。

MOV [BX], ALINC BXLOOP SMOV AL, 0MOV AH, 4CHINT 21HCSEG ENDSEND START3)程序的跟踪执行操作在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后什么结果都没有,是因为程序中没有显示命令。

02实验二 ARM汇编语言程序设计

02实验二 ARM汇编语言程序设计

实验二 ARM汇编语言程序设计一、实验目的1.了解ARM汇编语言的基本框架,学会使用ARM的汇编语言编程2.掌握ARM汇编指令二、实验设备1. EL-ARM-830教学实验箱,PentiumII以上的PC机,仿真器电缆。

2. PC操作系统WIN98或WIN2000或WINXP, ADS1.2集成开发环境,仿真器驱动程序。

三、汇编语言简介1.ARM汇编的一些简要的书写规范ARM汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。

ARM汇编对标识符的大小写敏感,书写标号及指令时字母大小写要一致。

在ARM汇编中,ARM指令、伪指令、寄存器名等可以全部大写或者全部小写,但不要大小写混合使用。

注释使用“;”号,注释的内容由“;”号起到此行结束,注释可以在一行的顶格书写。

详细的汇编语句及规范请参照ARM汇编的相关书籍、文档。

2. ARM汇编语言程序的基本结构在ARM汇编语言程序中,是以程序段为单位来组织代码。

段是相对独立的指令或数据序列,具有特定的名称。

段可以分为代码段的和数据段,代码段的内容为执行代码,数据段存放代码运行时所需的数据。

一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行文件。

可执行映像文件通常由以下几部分构成:◆一个或多个代码段,代码段为只读属性。

◆零个或多个包含初始化数据的数据段,数据段的属性为可读写。

◆零个或多个不包含初始化数据的数据段,数据段的属性为可读写。

链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置。

源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定相同。

3. 简单的小例子下面是一个代码段的小例子AREA Init,CODE,READONLYENTRYLDR R0, =0x3FF5000LDR R1, 0x0fSTR R1, [R0]LDR R0, =0x3F50008LDR R1, 0x1STR R1, [R0]……END在汇编程序中,用AREA指令定义一个段,并说明定义段的相关属性,本例中定义了一个名为Init的代码段,属性为只读。

实验二简单程序的编写及汇编连接

实验二简单程序的编写及汇编连接

实验二简单程序的编写及汇编连接实验二简单程序的编写及汇编连接一、实验目的1.熟练掌握编写汇编语言源程序的基本方法和程序的基本框架。

2.学会编写顺序结构、分支结构和循环结构的汇编程序。

3.掌握程序中数据的产生与数输出的方法。

4.熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。

二、实验要求1.预习附录2的内容2.实验前准备①分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。

②写出算法或画出流程图。

③写出源程序。

④对程序中的结果进行分析,并准备好上机调试的过程。

3.本实验要求在PC机上进行。

4.汇编过程中出现问题,可用DEBUG进行调试。

三、实验内容1.实验内容1①用EDIT应用程序编辑源程序(参考程序见下),建立.ASM文件;②用MASM程序汇编该文件,生成.OBJ文件;查看.LST文件的内容③用LINK程序链接,生成.EXE文件;④使用DEBUG命令将.EXE文件调进内存,执行后查看程序运行结果;⑤使用DEBUG命令,检查各段在内存当中分配情况。

参考程序:; exercize21data segmentorg 0200hbuffer dw 0, 1, -5, 10, 256, -128, -100, 45, 6, 3, dw -15,-67, 39, 4, 20, -1668, -32766, 32765, -525, dw 300count equ ($-buffer)/2max dw ?data endsstack segment stack 'stack'db 100 dup ('s')stack endscode segment para 'code'assume cs:code, ds:data, ss:stacksta proc farpush dsxor ax, axpush axmov ax, datamov ds, axlea si, buffermov cx, countdec cxmov ax, [si]chkmax: add si, 2cmp [si], axjle nextmov ax, [si]next: loop chkmaxmov max, axretsta endpcode endsend sta实验报告要求:1.小结汇编语言源程序的编译及连接过程;2.通过debug调试工具查看并记录DS在程序执行中的变化情况3.写出程序调试中出现的问题及解决方法;2.实验内容2①编辑源程序(参考程序见后),建立.ASM文件;②用MASM程序汇编产生.OBJ文件;③用LINK程序产生.EXE文件;④执行 .EXE文件,观察程序运行现象;⑤修改源程序,使输出的数字之间用空格间隔;参考程序:; display “0~9” 100 timesstac segment stack 'stack'db 100 dup ('s')stac endscod segment para 'code'assume cs:cod, ss:stacsta proc farpush dsxor ax, axpush axmov cx, 100mov bl, 0goon: push cxmov ah, 2mov dl, 0dhint 21hmov al, blinc aldaaand al, 0fhmov bl, alor al, 30hmov dl, almov ah, 2int 21hmov dx, 5l1: mov cx, 0ffffhagain: loop againdec dxjnz l1pop cxloop goonretsta endpcod endsend sta3.实验内容3:编程完成以下功能,并上机调试通过。

汇编语言程序设计实验指导书

汇编语言程序设计实验指导书

实验一宏汇编MASM5.0运行环境一、实验目的1、熟悉的MASM5.0宏汇编程序运行环境2、掌握用MASM5.0运行汇编语言程序的步骤3、学习及掌握的debug程序的各种命令并调试汇编语言程序。

二、实验仪器计算机、masm汇编运行环境三、实验原理1、建立汇编语言的工作环境(1)编辑程序:EDIT .COM(2)汇编程序:MASM .EXE(3)连接过程:LINK.EXE(4)调试程序:DEBUG .EXE2、运行汇编语言程序的步骤(汇编语言程序的上机过程)在汇编实验步骤的word文档中(请下载参考)。

(1)用汇编程序建立源文件(*.asm)汇编程序:记事本,写字板或EDIT.EXE 。

(文本文件编辑器)扩展名为:.asm(2)用汇编程序(MASM、EXE)产生OBJ文件。

(3)用连接程序(LINK 、EXE)生成EXE文件。

(4)程序的执行直接输入文件名LINKEDIT记事本写字板MASM3、用DEBUG 运行、调试汇编语言程序(1)进入DEBUGC:\ DEBUG (前提DEBUG .COM 程序在C 盘)屏幕显示:- “-”这个符号是进入DEBUG的提示符,在该提示符下可键入任意DEBUG 命令,现在用A命令送程序。

(2)送程序并汇编-A 100169C:0100 MOV DL ,33169C:0102 MOV AH ,2169C:0104 MOV INT 21169C:0106 MOV INT 20169C:0101此程序已送完,并汇编成机器指令(3)现在用G命令一运送程序-G3看一下机器指令是什么样的用反汇编命令U(4)反汇编-U 100 :108段地址偏移地址指令169C :0100 B233 MOV DL ,33169C :0102 B402 MOV AH ,02169C :0104 CD21 INT 21169C :0106 CD20 INT 20169C :D108(5)用Q命令退出DEBUG 返回DOS-QC:\4、DEBUG 命令(1)汇编命令A格式1)A < 段寄存器名>:<位移> ;(段寄器)为段地址2)A <段地址> :<位移> ;(c s) 为段地址3)A <位移> ;4)A ;以CS:100作地址功能:键入该命令后显示的地址和位移并等待用户从键盘逐条键入汇编命令。

实验2 顺序与分支汇编语言程序设计实验

实验2 顺序与分支汇编语言程序设计实验

ARM技术原理与应用实验报告实验2 顺序与分支汇编语言程序设计实验专业电子信息工程班级14电信班学生姓名陈定光学号2014010243101指导教师曹计昌2017年4月19 日实验2 顺序与分支汇编语言程序设计实验1、实验目的(1)掌握顺序结构汇编语言程序设计;(2)掌握分支结构汇编语言程序设计;(3)掌握AXD环境下顺序结构和分支结构汇编语言程序的运行、调试。

2、实验要求1、实验必须在在ADS1.2环境下进行。

2、工程名、汇编语言源文件名按照下面规则命名:工程名:pj+学号最后4位+其它字符汇编语言源文件名:p+学号最后4位+其它字符+.s例如:张维智同学学号最后4位是3134因此,pj3134、pj3134a、pj31341等都是允许的工程名;而 p3134a.s、p3134b.s等都是允许的源文件名。

3、实验报告中需要说明实验中在ADS、AXD环境下进行的实际操作;4、实验报告中应给出实际的实验操作、编写的源程序、及计算机的调试观察结果;5、按照规定格式打印实验报告。

3、实验内容1、编写程序p2xxxx1.s完成下面任务:(1)将1、2、3、4、5、6、7、8依次传送给寄存器R1-R8;分析:如上图显示,寄存器r1-r8分别是存放1-8(2)用STMIA指令将R1-R8保存到刚好能够存储8个字数据ARY_A数组中。

分析:如上图显示,地址0x8058-0x8078分别存放1-8(3)用STMIB指令将R1-R8保存到刚好能够存储8个字数据ARY_B数组中。

分析:如上图显示,地址0x8088-0x80A7分别存放1-8(4)用STMDA指令将R1-R8保存到刚好能够存储8个字数据ARY_C数组中。

分析:如上图显示,地址0x8094-0x80B3分别存放1-8(5)用STMDB指令将R1-R8保存到刚好能够存储8个字数据ARY_D数组中。

(6)用LDMIA指令将ARY_A数组中数据5、6、7、8传送到R1-R4寄存器。

汇编语言程序设计实验指导书

汇编语言程序设计实验指导书

重庆师范大学涉外商贸学院计算机各专业实验用书汇编语言程序设计实验指导书(第一版)张开成编前言为适应教学内容由简到繁、由易到难、由浅入深的教学特点,我们编写了这本简易实验指导书,用以指导实验教学。

该指导书分两部分,第一部分指出实验的实验目的、实验内容、实验准备、实验要求、共提出十五个实验,需三十个学时完成。

第二部分为十五个实验的全部程序,仅供学生参考。

该实验指导书由数计学院计算机教研室张开成同志编写。

2010年2月第一部分提出各实验的实验内容、实验目的、实验要求和学时分配实验一:汇编语言基本操作实验(2学时)一、实验目的:明确QE、MASM、LINK三个系统软件的作用。

掌握汇编语言程序的编辑、汇编、连接过程。

二、实验内容:1、编写一个程序:用十进制输出一个按键的AS CⅡ值。

2、从键盘上读入两个一位数(必须保证按下数字键),输出它们的积。

三、实验准备:1、预习QE、MASM、LINK 三个软件的使用方法。

2、按实验要求,编写好实验源程序。

四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。

2、汇编、连接生成扩展名为.EXE的可执行文件。

3、运行程序。

五、实验报告要求:1、总结用QE编辑源程序的方法。

2、说明源程序的连接、汇编过程。

3、分析运行结果。

4、按要求写出完整的实验报告(必须列出程序清单)。

实验二:分支程序设计实验(2学时)一、实验目的:1、学会简单分支和多分支程序的设计方法。

2、掌握程序的调试方法。

二、实验内容:1、从键盘读入两个一位数,输出它们的积。

若为非数字键,则显示字符“E”,退出程序。

2、从键盘接收一个按键,如为小写字母,则显示“L”,是大写字母,则显示“U”,如是数字,则显示“N”,都不是则显示“*”。

三、实验准备:1、预习分支程序设计方法。

2、按实验内容要求,编写好实验源程序。

四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。

2、汇编、连接生成可执行文件.EXE。

3、运行程序。

汇编语言程序设计2

汇编语言程序设计2

目录系统认识 (1)实验一数码转换编程及程序调试 (5)实验二运算类编程实验 (11)实验三分支程序、循环程序设计实验 (16)实验四子程序设计实验 (22)实验五显示程序实验 (26)实验六串行通讯应用实验 (27)附录WMD86 联机软件使用说明 (40)系统认识一、实验目的掌握TD-PITE微机原理与接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。

二、实验设备PC微机一台,TD-PITE实验装置一套。

三、实验内容编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。

四、实验步骤1. 运行Wmd86软件,进入Wmd86集成开发环境。

2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1所示。

语言选择后,下次再启动软件,语言环境保持这次的修改不变。

在这里,我们选择汇编语言。

图13. 语言选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图2所示。

默认文件名为Wmd861。

图24. 编写实验程序,如图3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

图3程序:SSTACK SEGMENT STACK ;定义堆栈段DW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART: PUSH DSXOR AX, AXMOV DS, AXMOV SI, 3000H ;建立数据起始地址MOV CX, 16 ;循环次数AA1: MOV [SI], ALINC SI ;地址自加1INC AL ;数据自加1LOOP AA1AA2: JMP AA2CODE ENDSEND START5. 点击,编译文件,若程序编译无误,则输出如图4所示的输出信息,然后再点击进行链接,链接无误输出如图5所示的输出信息。

图4图56. 连接PC与实验系统的通讯电缆,打开实验系统电源。

8086 汇编语言顺序程序设计

8086 汇编语言顺序程序设计

汇编语言程序设计实验报告学院:计算机科学与技术学院专业:计算机科学与技术班级:计科131MOV AX,WORD PTR N1MOV DX,WORD PTR N1+2MOV CX,WORD PTR N2MOV BX,WORD PTR N2+2ADD AX,CXADC DX,BXMOV WORD PTR N3,AXMOV WORD PTR N3+2,DXMOV AH,4CHINT 21HCODE ENDSEND START使用相应的文本编辑器建立文件two.asm,内容如上所示。

二. 生成可执行文件:1.汇编:C:\masm> masm two;2.连接:C:\masm> link two;三.运行及调试:1. 运行:C:\masm>debug two.exe-U0 ;通过反汇编查找程序的断点-T=0 2 ;加载数据段-D0 ;查看原始数据是否正确-G=0 1F ;运行程序至断点1F 处-D0 ;查看程序运行结果2.调试:若要判断此程序对于其它32 位数相加是否正确,则需要使用DEBUG 进行程序调试。

实验二:编程实现:将从2000H 单元开始的连续128 个单元的内容进行清零一. 编程CODE SEGMENTASSUME CS:CODE,DS:CODESTART:MOV BX,2000HMOV CX,128MOV AL,00HL1:MOV [BX],ALINC BXLOOP L1MOV AH,4CHINT 21HCODE ENDSEND START二.使用编辑器建立源程序文件four.asm。

三.生成可执行文件:1.汇编:C:\masm> masm four;2.连接:C:\masm> link four;四.运行及调试:1. 运行:C:\masm>debug four.exe-D2000;-R;-D CS:2000;-G;-D2000;实验三:编程实现:将3000H 单元的一个字节的内容进行拆分,高半字节放进3001H 单元的低半部分,其低半字节放进3002H 单元的低半部分一、编程源程序:DATA SEGMENTN0 DW 3000HN1 DW 3001HN2 DW 3002HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV BX,N0AND BX,0FHMOV AX,N2MOV AX,[BX]MOV BX,N0MOV CL,4SHR AX,CLMOV AX,N1MOV AX,[BX]MOV AH,4CHINT 21HCODE ENDSEND START二.使用编辑器建立源程序文件five.asm。

东南大学微机实验二_汇编语言程序设计

东南大学微机实验二_汇编语言程序设计

3.2 实验二汇编语言程序设计3.2.1 实验目的1)进一步熟悉汇编语言程序的编辑、宏汇编、链接、运行基本概念;2)熟练掌握动态调试程序TD/DEBUG的常用命令或窗口功能,学会用TD/DEBUG调试程序,修改数据和寄存器等环境;3)熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,了解DOS/BIOS功能调用的基本方法。

3.2.2 实验环境实验环境同实验一。

3.2.3 基本实验内容1)基本实验内容和要求(1)编写程序实现如下功能;①从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其他字符不变)并按原顺序将这些字符在屏幕上显示出来。

②从键盘输入在0-65535之间的十进制数,将其转换为16进制数并在屏幕中显示出来,要求判断输入字符串是否为在0-65535之间的十进制数。

(2)复习功各种操作,并用DEBUG调试程序,学会基本命令操作,并通过单步、设置断点等方法观察中间结果,完成正常运行。

命令行方式下直接键入debug myfile.exe回车(myfile为待调试可执行程序),进入调试方式(显示—),键入H回车显示全部命令、格式和功能。

常用命令有;U(反汇编)、A(汇编输入指令程序)、R(寄存器显示/修改)、I(端口输入)、0(端口输出)、D(显示数据)、E(修改数据)。

除资源修改管理功能外,重点应用T(单步)、Tn(执行n步)、P(过程/指令)、G××××(从当前器:IP执行到断点××××)或G=××××l ××××2(从××××l执行到××××2断点)调试实驴程序。

2)编程提示(1)小写字母的ASCII码比其所对应的大写字母的ASCII码值大20H,如字符“a”的ASCII 码为61H,而字符“A”的ASCII码为41H,因此字符变换时将小写字母的ASCII码减去20H即为大写字母的ASCII码。

实验2顺序程序设计

实验2顺序程序设计

实验2 顺序程序设计一、实验目的1.能进行简单的顺序结构程序的设计。

2.进一步巩固8086/8088的指令。

3.初步掌握源程序中语法错误的检查方法。

4.熟悉在汇编程序的建立、录入、汇编、连接和调试的方法。

5.巩固DEBUG的使用方法。

二、实验任务任务1:用查表法求对数利用表格进行数据检索处理,是数据处理的一个重要方法。

一般称之为查表法。

对数运算不仅运算不易,而且用汇编语言实现也非常困难。

但使用查询表来解决这类问题就非常容易和有效。

1.实验要求①在数据段中定义表TABLE,其含有从1到9各整数的常用对数。

为避开处理小数,表内每个数都隐含着一个十进制小数点。

例如:4771表示是的0.4771。

②通过键盘键入一个需查询的数(范围1~9,要求用01H功能调用)。

并把接收到的数调整成二进制数放入变量NUM内,答案返回到ANS变量中。

2.提示①DOS系统中01H功能调用方法如下:例:带显示的键盘键入(01H号功能)该功能子程序等待键盘输入一个字符,把字符的ASCII码送入AL,并在屏幕上显示该字符。

01H号功能调用无入口参量,出口返回参在AL中。

调用方法为:MOV AH,01HINT 21H②由于从键盘输入的待查询数是以其ASCII码的形式送到AL 的,因此程序一开始应将AL中的ASCII码转换成二进制数送NUM 变量,再进行查表处理。

③下面给出部分程序段供参考:数据段的定义DATA SEGMENTTABLE DW 0,3010,4771,6021,6990,7782,8451,9031,9542 NUM DW ?ANS DW ?DATA ENDS使用变址查表程序段MOV AL, NUM ;要查询的数SUB AL, 1 ;调整变址ROL AL, 1 ;乘以2,作为字变址CBW ;把AL从字节转换为字LEA BX, TABLE ;建立查表首地址ADD AX, BX ;变址与偏移量相加得到要查单元的地址MOV ANS, AX ;将结果送ANS变量④以上步骤若出现错误,要求用DEBUG调试程序。

汇编语言程序设计实验2汇编源程序编写与汇编、调试

汇编语言程序设计实验2汇编源程序编写与汇编、调试

汇编语⾔程序设计实验2汇编源程序编写与汇编、调试汇编语⾔程序设计实验2 汇编源程序编写与汇编、调试⼀、实验⽬的1. 理解并掌握汇编源程序组成与结构2. 掌握汇编语⾔源程序编写→汇编→链接→调试的⼯具和⽅法3. 理解汇编源程序中地址表⽰、段寄存器的⽤法4. 理解和掌握寄存器间接寻址⽅式[bx]5. 通过汇编指令loop的使⽤理解编程语⾔中循环的本质⼆、实验内容及结果(⼀)实验任务⼀使⽤任意⼀款⽂本编辑器,编写8086汇编源程序ex1.asm。

源代码如下:assume cs:codecode segmentmov ax, 0b810hmov ds, axmov byte ptr ds:[0], 1mov byte ptr ds:[1], 1mov byte ptr ds:[2], 2mov byte ptr ds:[3], 2mov byte ptr ds:[4], 3mov byte ptr ds:[5], 3mov byte ptr ds:[6], 4mov byte ptr ds:[7], 4mov ah, 4chint 21hcode endsend要求:使⽤8086汇编程序编写、汇编、链接、运⾏、调试⽅法,对ex1.asm进⾏汇编、链接、运⾏,使⽤debug⼯具调试可执⾏⽂件。

使⽤masm、link对ex1.asm进⾏汇编、链接,得到可执⾏⽂件ex1.exe,运⾏并观察结果。

使⽤debug⼯具对程序进⾏调试使⽤debug加载可执⾏⽂件ex1.exe后,使⽤d命令查看程序段前缀PSP所占的256个字节。

结合可执⾏⽂件中寄存器CX的值,使⽤u命令对ex1.exe进⾏精确反汇编使⽤g命令执⾏到程序退出执⾏之前(即源码⽂件中line16之前),观察结果。

1、⾸先使⽤masm对*.asm⽂件进⾏编译,⽣成包含机器代码的⽬标⽂件(*.obj)编译后没有问题(截图中能看到提⽰说:0 Warning Errors和0 Severe Errors)这时候再返回到⽂件夹中就会发现多了⼀个.obj⽂件对 *.obj ⽬标⽂件进⾏连接,得到可执⾏⽂件(.exe⽂件)。

汇编程序设计实验

汇编程序设计实验

汇编程序设计实验实验二简单程序设计实验目的:熟悉汇编程序设计的基本过程。

实验内容:1、NUMB1 DB ?NUMB2 DW 20 DUP(?)NUMB3 DB ‘USB’MOV AX,TYPE NUMB12、编写人机对话程序 WHAT IS YOUR NAME? 输入:My name is .DSEG SEGMENTDATA DB 0AH,0DH,'WHAT IS YOUR NAME?$'BUF DB 81DB ?DB 80 DUP(0)DSEG ENDSSTACK1 SEGMENTDB 200 DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DSEG,SS:STACK1START: MOV AX,DSEGMOV DS,AXLEA DX,DATAMOV AH,09HINT 21HLEA DX,BUFMOV AH,0AHINT 21HMOV AH,4CHINT 21HCODE ENDSEND START思考:汇编程序设计有那些步骤,应该注意什么?实验三程序设计练习一实验目的:1.掌握汇编语言程序的结构和各种结构程序设计的方法;2.熟悉汇编语言程序设计全过程;3.用汇编语言进行程序设计。

实验内容:EX1:将变量A=10011010B的数据以二进制形式在显示器上输出。

EX2:1+2+22+23+……+2n-1=255,求N值并显示出来。

EX3:已知在以BUF为首地地址的字节存储区中,存放着一个以‘$’作结束标志的字符串,编写程序,显示该字符串,并要求将小写字母以大写字母形式显示出来。

(小写a为61H,大写A 为41H。

)EX4:在以PROG为首址的字节存储区中存放着一段汇编源程序,最后以CTRL—Z(其ASCII码为1AH),统计“MOV”出现的次数,并将统计结果送入字变量NUM中。

EX5:已知m×n矩阵A的元素aij 按行序存放在以BUFA为首地址的字节存储区中,试编写程序,求每行元素之和Si,其中aij为8位二进制数。

实验六汇编语言程序设计实验(二)

实验六汇编语言程序设计实验(二)

实验六汇编语言程序设计实验(二)
实验六汇编语言程序设计实验(二)
一、实验目的:
1、熟悉8086指令系统的移位指令和控制转移指令。

2、进一步熟悉debug调试程序的运用。

3、掌握完整的汇编程序的上机方法。

二、实验内容:
1、判断PAR单元数据的奇偶性(指二进制低8位中含有1
的个数),当为奇数时置MARK单元为1,当为偶数时置MARK 单元为0。

(Debug 6_1.exe
用t命令观察程序的执行
用d 0 1 显示数据段,偏移从0地址开始,显示到1地址结束;)
2、编程,向内存0:200~0:023F中依次传送数据0~3F. (Debug 6_2.exe
U 0 10 反汇编代码
G=0 10 运行程序
D ds:0 显示数据段内容)
三、实验器材
IBM PC 微机一台
四、实验要求:
按题目要求,画出流程图,在实验前编写好源程序。

五、实验报告要求
1 画出简要流程图;
2 编写程序,并加上注释;
3 记录运行步骤和运行结果;。

实验二 汇编语言程序设计实验

实验二 汇编语言程序设计实验

实验二汇编语言程序设计实验一、实验目的:1)熟悉常用的汇编语言指令2)掌握程序的顺序结构、分支结构、循环结构和子程序结构3)掌握汇编语言程序调试方法二实验内容:(一)顺序结构(以下程序至少完成一个)(1)编制计算下列表达式的程序:w=x/2-y+4*z(其中x,y,z均为带符号字节类型的数);(2)编写程序完成两个已知双精度数(4字节)A和B相加并将结果存入双精度变量单元SUM 中(不考虑溢出);(3)从键盘输入一个小写字母,将其转化为大写字母显示出来。

(二)分支结构(以下程序至少完成一个)(1)设平面上一点P的直角坐标为(X,Y),X,Y为字类型符号数,试编制若P落在第i象限内,则令k=i;若P落在坐标轴,则令k=0的程序;(2)编写一程序,把变量BUFX和BUFY中较大者存入BUFZ中,若两者相等,则把其中之一存入BUFZ中。

假设变量存放的是8位无符号数;(3)设变量BUFX为16位带符号数,将其符号状态保存在SIGNX,即如果BUGFX大于等于0,保存0;如果小于0,则保存-1。

(4)BUFX,BUFY和BUFZ是3个有符号十六进制数,编写一个比较相等关系的程序,如果这三个数都不相等,则显示0,如果3个数中有两个相等,则显示1,如果3个数都相等,则显示2.(三)循环结构(以下程序至少完成一个)(1)编程序将符号字数组ARRAYW中的正负数分别送入正数数组PLUS和负数数组MINUS中,同时把0元素的个数送入字变量ZERON;(2)编程序统计16位符号数组ARRAY中的奇数和偶数个数,将奇数个数存入EVENN中,偶数个数存入数组ODDN中。

(3)设有一个数组存放学生的成绩,编写程序统计各分数段学生人数,90-100分人数存入A中,80-89分人数存入B中,70-79分人数存入C中,60-69分人数存入D中,0-59分人数存入E中。

三、撰写实验报告,画出程序流程图,写出源程序,截图给出调试过程和运行结果。

汇编语言实验2-顺序程序设计

汇编语言实验2-顺序程序设计

汇编语言实验报告Assembly Language Programming Lab Reports______________________________________________________________________________班级: _________ 姓名:___________ 学号:___________ 实验日期:_____________学院: _____计算机与通信工程学院____ 专业:_______计算机科学与技术___________实验顺序:___实验二____ 实验名称: ___________顺序程序设计________________ 实验分数:_______ 考评日期:________ 指导教师:______________________________________________________________________________一.实验目的1.掌握非压缩的BCD码运算及其调整办法。

2.掌握Dos功能调用int 21h的1,2,9,10号功能。

3.掌握Bios功能调用int 10h的3号功能。

______________________________________________________________________________二.实验环境操作系统:windows xp编译程序:masm 5.0______________________________________________________________________________三.实验原理1.dos功能调用,利用10号dos功能调用,输入一串字符串,利用9号dos功能调用,输出显示之前输入的字符串代码如下:2.利用int10h获得光标的行列号,算出相应在显存的位置,输出想要的字符代码如下:3.输入是转化由ascii码转成实际十六进制数,mul相乘后,采用非压缩bcd码相乘调整aam,高位低位分别采用非进位加法和进位加法,最后转回ascii码输出代码如下:______________________________________________________________________________四.实验步骤及结果分析1.Dos功能调用。

汇编语言顺序程序设计实验报告

汇编语言顺序程序设计实验报告

实验名称:汇编语言顺序程序设计实验报告实验目的:通过本次实验,学生能够掌握使用汇编语言编写顺序程序的基本方法,理解汇编语言的基本结构和运行机制。

实验内容:1. 汇编语言基础知识1.1 汇编语言的概念1.2 汇编语言的特点1.3 汇编语言的应用领域2. 汇编语言程序设计2.1 程序设计的基本流程2.2 程序设计的基本步骤2.3 汇编语言程序设计的规范与技巧3. 实验步骤3.1 确定实验题目和要求3.2 分析实验任务,设计程序流程图3.3 编写汇编程序3.4 调试程序,确保程序正确运行3.5 编写实验报告4. 实验报告要求4.1 实验题目4.2 实验目的4.3 实验内容和步骤4.4 程序设计思路和实现方法4.5 实验结果分析和讨论4.6 实验心得体会实验过程:1. 确定实验题目和要求本次实验的题目为“汇编语言顺序程序设计”,要求学生使用汇编语言编写一个顺序程序,实现指定的功能要求。

2. 分析实验任务,设计程序流程图在开始编写汇编程序之前,我们首先要明确实验的功能需求,然后设计程序的流程图,规划程序的整体结构。

3. 编写汇编程序在设计好程序流程后,根据汇编语言的语法规则,编写相应的程序代码,并确保程序的逻辑正确,语法无误。

4. 调试程序,确保程序正确运行编写完成程序后,需要对程序进行调试,逐步检查程序运行过程中的各个环节,发现并修复可能存在的错误。

5. 编写实验报告我们需要撰写本次实验的实验报告,详细记录实验的整体过程,包括程序设计思路、程序实现方法、实验结果分析和讨论,以及实验心得体会。

实验结果分析和讨论:经过本次实验,我们掌握了汇编语言顺序程序设计的基本方法和技巧,了解了汇编语言程序设计的规范和要求。

在实验过程中,我们遇到了一些问题和困难,但通过不懈的努力和团队合作,最终成功完成了实验任务,并取得了令人满意的成绩。

实验心得体会:通过本次实验,我们深刻认识到汇编语言在计算机领域中的重要性和应用价值,同时也意识到汇编语言程序设计的复杂性和技术挑战。

实验基础汇编语言程序设计

实验基础汇编语言程序设计

实验基础汇编语言程序设计基础汇编语言程序设计是计算机科学与技术专业中的一门重要课程,它主要介绍了计算机汇编语言的基本概念、指令格式以及程序设计方法。

在这门课程中,学生将通过一系列实验来学习和掌握基础汇编语言程序设计的技能。

一、实验目的和要求本实验的主要目的是让学生通过实际操作,了解和掌握基础汇编语言的编写和调试技巧。

具体要求如下:1.学生能够理解和掌握汇编程序的结构和执行过程。

2.学生能够掌握汇编指令的基本格式和使用方法。

3.学生能够完成基础汇编程序的编写和调试。

二、实验内容和步骤本实验将设计两个基础汇编程序,分别是计算一个整数的平方和计算一个整数的阶乘。

具体步骤如下:1.实验一:计算一个整数的平方(1)程序设计思路:-通过输入一个整数,将其存储在寄存器中;-将寄存器中的整数与自身进行乘法运算;-将结果存储在另一个寄存器中;-输出结果。

(2)程序设计步骤:a.定义数据段和堆栈段;b. 定义变量:整数num和结果result;c.通过输入指令将一个整数存储在寄存器中;d. 通过MOV指令将该寄存器中的整数存储在变量num中;e. 通过MUL指令将变量num与自身相乘,结果存储在寄存器中;f. 通过MOV指令将寄存器中的结果存储在变量result中;g.通过输出指令将结果输出。

2.实验二:计算一个整数的阶乘(1)程序设计思路:-通过输入一个整数,将其存储在寄存器中;- 定义一个变量result并初始化为1;-循环执行乘法运算,将结果存储在寄存器中;- 将结果存储在变量result中;-输出结果。

(2)程序设计步骤:a.定义数据段和堆栈段;b. 定义变量:整数num和结果result;c.通过输入指令将一个整数存储在寄存器中;d. 通过MOV指令将该寄存器中的整数存储在变量num中;e.通过MOV指令将立即数1存储在寄存器中;f.通过循环指令循环执行乘法运算,将结果存储在寄存器中;g. 通过MOV指令将寄存器中的结果存储在变量result中;h.通过输出指令将结果输出。

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

汇编实验二顺序结构程序设计
实验目的:
(1)掌握汇编语言程序上机过程。

(2)掌握顺序结构程序调试的方法。

实验内容:
调试查表程序
内存中自TABLE开始的七个单元中连续存放着自然数0~6的立方值(立方值表),
任一个数X(0≤X≤6)在FIRST单元中,要求查表找出X的立方值,存SECOND
单元。

准备工作:
1.进入D:
2.建立一个文件夹hb, 即d:\hb
3.将MASM和LINK复制到该文件夹中
4.单击“开始”-“程序”-“附件”-“命令提示符”
5.输入“d:\”
6.输入“cd hb”
操作步骤:
1.输入源程序: EDIT d:\hb\cb.asm
在EDIT编辑环境File菜单下选择Save存盘,选择Exit退出编辑环境
2.汇编源程序
A>MASM CB↙
Microsoft (R) Macro Assembler Version 5.10
Copyright (C) Microsoft Copr 1981,1988 All rights reserved.
Object filename [CB.OBJ]:_↙
Source listing [NUL.LST]:↙
Cross-reference [NUL.CRF]:↙
51394+389950 Bytes symbol space free
0 Warning Errors
0 Severe Errors
A>
3.连接目标程序
A>LINK
Microsoft (R) Overlay Linker Version 3.64
Copyright (C) Microsoft Corp 1983-1988. All rights reserved.
Object Modules [.OBJ]:CB↙
Run File [NUL.MAP]:↙
Libraries [.LIB]: ↙
显示0个错误才能进行下一步LINK操作
4.执行程序
A>B
没有任何结果输出,原因是程序中没有安排显示输出,结果保存在内存单元中。

5.用DEBUG调试并查看运行结果
A>DEBUG CB.EXE
1先用U命令进行反汇编,看到源程序在内存中的存储
2T (单步执行一条指令。

)
AX=0BEF BX=0000 CX=0068 DX=0000 SP=0040 BP=0000 SI=0000 DI=0000 DS=0BDB ES=0BDB SS=0BEB CS=0BF0 IP=0003 NV UP EI PL NZ NA PO NC 0BF0:0003 8ED8 MOV DS,AX
3 T (单步执行一条指令。

)
AX=0BEF BX=0000 CX=0068 DX=0000 SP=0040 BP=0000 SI=0000 DI=0000 DS=0BEF ES=0BDB SS=0BEB CS=0BF0 IP=0005 NV UP EI PL NZ NA PO NC 0BF0:0005 B80000 MOV BX,0000
4 D DS:0 (显示DS段,偏移地址为0000单元的内容。

)
用D命令观看数据段的内容
5 T (继续单步运行若干次。

)
............
直到程序运行到MOV AH,4CH为止
或者 G 0014,
用G命令一次执行多条指令直到运行到断点0014H (即指令MOV AH,4CH为止)6 D DS:0 (显示DS段,偏移地址为0000单元的内容。

)。

相关文档
最新文档