汇编上机实验七 分枝程序

合集下载

所有实验电子版报告

所有实验电子版报告

实验报告课程:汇编语言上机实验专业:电子信息科学与技术班级:11电子1班学号:119050244098姓名:徐睿昀物理与电子信息学院目录实验一 DEBUG常用命令及8086指令使用 (1)实验二内存操作数及寻址方法 (5)实验三汇编语言程序上机过程 (10)实验四数据串传送和查表程序 (13)实验五屏幕字符显示程序 (19)实验六屏幕字符显示程序 (23)实验七分枝程序 (27)实验八多重循环程序 (33)实验九子程序 (37)汇编语言程序设计实验报告1学号:119050244098 姓名:徐睿昀实验日期:2013 10 20 实验名称:实验一 DEBUG常用命令及8086指令使用实验目的:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG2、DEBUG命令: A,D,E,F,H,R,T,U。

3、ASCII码及用16进制数表示二进制码的方法。

4、8086寄存器: AX,BX,CX,DX,F,IP。

实验内容:一、DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示符 '_ '。

2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。

3、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。

4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。

5、用命令 E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。

实验一 汇编语言程序设计的实验环境及上机步骤

实验一  汇编语言程序设计的实验环境及上机步骤

实验一熟悉汇编语言程序设计的实验环境及上机步骤一、实验目的:1、掌握文本编辑程序EDIT的基本使用方法。

2、熟练掌握汇编语言上机操作的基本步骤,学会汇编语言程序的编辑、汇编、连接、运行等操作方法。

二、上机实验指导(一)实验环境1.硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境⏹Windows98/2000/XP操作系统⏹文本编辑器(NOTEPAD(记事本))⏹汇编程序(MASM.EXE)⏹连接程序(LINK.EXE)(二)上机实验步骤上机步骤总结如下:1.把汇编程序拷贝到 C:\ASM\2.用记事本建立ASM源程序,保存为C:\ASM\HELLO.ASM3.汇编 C:\ASM>MASM HELLO.ASM<回车>4.链接C:\ASM>LINK HELLO.OBJ<回车>5.执行C:>ASM>HELLO〈回车〉下面详细介绍上机步骤:1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。

创建方法:找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。

请把MASM.EXE、LINK.EXE都拷贝到此目录中。

2.建立ASM源程序使用NOTEPAD(记事本)文本编辑器建立ASM源程序。

打开记事本,输入源程序后,保存为后缀为.ASM的文件,保存路径为C:\ASM\HELLO.ASM。

3.用MASM.EXE汇编源程序产生OBJ目标文件具体操作如下:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:C:\Documents and Settings>cd..(回车,退回到上一级根目录)C:>CD ASM<回车>C:\ASM>MASM HELLO.ASM<回车>操作时的屏幕显示如图2所示。

汇编源程序上机操作过程共42页

汇编源程序上机操作过程共42页


29、在一切能够接受法律支配的人类 的状态 中,哪 里没有 法律, 那里就 没有自 由。— —洛克

30、风俗可以造就法律,也可以废除 法律。 ——塞·约翰逊
46、我们若已接受最坏的,就再没有什么损失。——卡耐基 47、书到用时方恨少、事非经过不知难。——陆游 48、书籍把我们引入最美好的社会,使我们认识各个时代的伟大智者。——史美尔斯 49、熟读唐诗三百首,不会作诗也会吟。——孙洙 50、谁和我一样用功,谁就会和我一样成功。——莫扎特
汇编源程序上机操作过程

26、我们像鹰一样,生来就是自由的 ,但是 为了生 存,我 们不得 不为自 己编织 一个笼 子,然 后把自 己关在 里面。 ——博 莱索

27、法律如果不讲道理,即使延续时 间再长 ,也还 是没有 制约力 的。— —爱·科 克

28、好法律是由坏风俗创造出来的。 ——马 克罗维 乌斯

汇编语言上机实验内容

汇编语言上机实验内容

实验一上机操作一、实验目的把握汇编语言程序编辑、汇编、连接、运行和利用DEBUG调试程序的方式。

二、实验设备PC机及相应的软件。

三、实验内容及步骤1、编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。

2、利用DEBUG进行程序调试,把握经常使用命令的利用方式,观看运行结果。

3、汇编语言上机操作,见图1-1 汇编语言上机操作流程。

上机操作进程:开始输入cmd 确认后显示:C:\Documents and setting\Administrator>-输入 cd c:\masm 后显示:c:\masm>-c:\masm>EDITc:\masm>MASM ABC;假设有语法错,回EDIT下改该程序c:\masm>LINK ABC;假设有错,回EDIT下改程序c:\masm>ABC假设运行结果错,回EDIT下改程序或在DEBUG下调试,找缘故。

c:\masm>DEBUG手写源程序图 1-1 汇编语言上机操作流程汇编语言程序举例例1:将BL寄放器的内容按二进制形式显示出来。

设:(BL)=01010011B分析:采纳2号功能挪用,别离输出30 31 30 31 30 30 31 31 显示:01010011参考程序:CODE SEGMENTASSUME CS: CODESTART:MOV CX ,8 ;显示字符个数为8MOV BL ,53HNEXT:SHL BL ,1 ;将显示位移至CF中JC ONE ;CF=1?MOV DL ,30H ;CF=0,将0的ASCII放在DL中JMP EXITONE:MOV DL ,31H ;CF=1,将1的ASCII放在DL中EXIT:MOV AH ,2INT 21H ;挪用DOS功能显示DEC CX ;循环次数减1JNZ NEXT ;判定是不是终止MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START上机操作:c:\masm>EDIT ;编辑源程序c:\masm>MASM ShowBL ;汇编成Microsoft (R) Macro Assembler VersionCopyright (C) Microsoft Corp 1981,1988. All rights reserved.48912 + 447243 Bytes symbol space free0 Warning Errors0 Severe Errorsc:\masm>LINK ShowBL ;连接成Microsoft (R) Overlay Linker VersionCopyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:\masm>ShowBL ;装载并执行01010011 ;屏幕显示c:\masm>-在DEBUG下查看的装入情形:c:\masm>DEBUG- R ;查看当前寄放器内容AX=0000 BX=0000 CX=001B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B51 ES=0B51 SS=0B61 CS=0B61 IP=0000 NV UP EI PL NZ NA PO NC B353 MOV BL,53- U CS:0 ;查看程序0B61:0000 B353 MOV BL,530B61:0002 B90800 MOV CX,00080B61:0005 D0E3 SHL BL,10B61:0007 7205 JB 000E…….0B61:0017 B44C MOV AH,4C0B61:0019 CD21 INT 21…….-G ;执行程序01010011Program terminated normally-例2:将某段中的字符串“Hello!”传送到另一段中。

汇编实验报告一

汇编实验报告一

汇编语言程序设计实验报告实验名称上机过程及顺序结构与分支结构程序设计实验班级学号姓名日期成绩评阅人软件学院一、实验目的与意义1、掌握汇编语言程序设计的基本方法和技能;2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;3、熟练掌握宏汇编程序MASM的使用;4、熟练掌握连接程序LINK的使用;5、学习数据传送及算数和逻辑运算指令的用法;6、掌握分支程序的结构;7、掌握分支程序的设计、调试方法;8、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序;二、实验环境操作系统:Windows XP调试软件:Edit Plus 3,MASM 5.0上机地点:综合楼311三、实验的预习内容(1)熟悉上机练习过程和伪指令实验实验预习内容:在实验前,充分熟悉Edit Plus 3的环境以及配置方法,熟悉各种debug 的常用指令:U、D、T、P、G、A、E及R命令的使用和含义,了解数据传送指令和算数以及逻辑运算指令的用法,在理论上了解数据的存储情况以及DD,DB,DW伪指令的用法和含义。

实验思路:按照书上的程序打入代码,进行汇编、连接和运行程序查看此时程序的运行情况,之后进入debug界面,分别使用U、D、T、P、G、A、E及R命令等常用指令,可查看此时的程序的执行状况以及此时寄存器的存储情况以及对于内存的使用情况。

程序一流程图:程序二流程图:(2)顺序结构程序设计实验实验预习内容:在实验前了解十进制,十六进制和ASCII 码之间的转换,了解如何从键盘中输入字符和回车换行,以及在屏幕中显示的汇编指令。

实验思路:从键盘中输入要计算的数字,将其进行平方运算,利用计算得到数字,了解十进制数字、十六进制数字与其对应ASCII 码的转换方法,将数字显示到屏幕上。

程序流程图:(3)分支程序设计实验实验预习内容:在实验前了解分支结构的特点,明白跳转指令和程序转移指令的使用的使用,以及两个数进行比较后各个标志位的变化。

实验一汇编语言程序设计上机实验的基本过程

实验一汇编语言程序设计上机实验的基本过程

实验一汇编语言程序设计上机实验的基本过程〇、实验目的和要求:1.熟悉汇编语言程序设计上机实验的计算机软硬件平台。

2.熟悉汇编语言程序设计上机实验的过程。

3.熟练掌握汇编语言源程序的编辑及对其汇编、连接、运行的过程。

4.熟练掌握使用DEBUG调试和运行程序的方法(“工欲善其事,必先利其器!)。

一、实验提要注:以下内容基于初次使用DOS系统和初次上机进行汇编语言程序设计实验以及基本会使用Windows系统的状态,故可根据自己对相关知识得了解和掌握程度,选择性阅读相关内容。

此标注适用于本实验教程的全部内容。

㈠汇编语言程序设计上机实验所需的软硬件平台汇编语言程序设计上机实验需要的计算机软硬件:●装有DOS或Windows操作系统且能正常使用的通用计算机。

●在某个硬盘分区的根目录下创建一个文件夹(类同于DOS系统的目录)。

例如,在计算机的D盘创建一个名为MASM的文件夹(DOS系统对此的标识为“D:\MASM>”,此即所谓的“DOS系统提示符”的表示形式),且在该目录具有以下两个程序:汇编程序MASM.EXE连接程序LINK.EXE而DOS和Windows操作系统本身都提供有以下两个工具程序:文本编辑程序调试程序和两程序文件正常存放在Windows系统的system32文件中(DOS系统中这两文件就存放在于系统文件所在的目录),且默认可以使用于任何工作路径,故在DOS系统状态下,可直接运行EDIT和DEBUG。

其中:可用来编辑和保存汇编语言源程序。

当然,也可使用任何可以编辑纯文本格式的文字编辑软件,诸如Windows系统中自带的记事本等等。

是汇编语言程序设计的得力利器,可以用其完成汇编语言程序设计的几乎整个过程。

本实验教程将详述DEBUG用来调试程序的方法。

此外,据需可选用的软件还有LIB.EXE、CREF.EXE、EXE2BIN.EXE等。

本课程上机实验所用工作平台的建立,将根据所使用的计算机及其所属网络的情况而定。

汇编上机实验报告

汇编上机实验报告

汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。

实验内容:实验一:汇编程序的简单输入输出1.编写一个汇编程序,要求从键盘输入两个整数,然后将其相加,并将结果输出到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验二:汇编程序的条件跳转1.编写一个汇编程序,要求从键盘输入一个整数,判断其是否大于10,若是,则将其打印到屏幕上;否则,将其乘以5并打印到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验三:汇编程序的循环1.编写一个汇编程序,要求计算1到10的累加和,并将结果打印到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验四:汇编程序的数组操作1.编写一个汇编程序,要求定义一个长度为10的数组,并将数组中的值初始化为0,然后利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验结果:实验一:汇编程序的简单输入输出编写的汇编程序通过键盘输入两个整数,实现了相加并将结果输出到屏幕上的功能。

程序运行正常,输出结果与预期一致。

实验二:汇编程序的条件跳转编写的汇编程序通过键盘输入一个整数,根据条件判断,实现了将输入数大于10时打印在屏幕上,否则将其乘以5并打印在屏幕上的功能。

程序运行正常,输出结果与预期一致。

实验三:汇编程序的循环编写的汇编程序通过循环计算1到10的累加和,并将结果打印在屏幕上。

程序运行正常,输出结果与预期一致。

实验四:汇编程序的数组操作编写的汇编程序通过定义一个长度为10的数组,并将数组中的值初始化为0,利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。

汇编语言分支结构程序设计

汇编语言分支结构程序设计

实验七分支结构程序设计一、实验目的掌握条件转移指令的使用方法及指令对标志寄存器中各标志位的影响;掌握标志位和转移指令之间的关系;会用条件转移指令和无条件转移指令设计多分支结构程序;掌握设置断点调试程序的方法。

二、示例1、存自BUF单元开始的缓冲区连续存放着10个学生的英文分数,编程序统计其中90~100,60~89,60以下者各有多少人?并把90-100分人数结果存放在P1单元中、60-89分人数结果存放在P2单元中,60分以下人数结果存放在P3单元中(P1、P2、P3为数据段的单元),最后把P1、P2、P3中的数以”P1=?、P2=?、P3=?”显示在屏幕上。

(注:数据以10进制显示)DATA SEGMENTBUF DB 70H,58H,50H,91H,99H,62H,75H,82H,74H,60H ;定义BUF单元地址开始的缓冲区的数据ORG 0020H ;程序执行时,将P1送到0200H存单元P1 DB 0ORG 0030H ;程序执行时,将P2送到0300H存单元P2 DB 0ORG 0040HP3 DB 0 ;程序执行时,将P3送到0400H存单元ORG 0050H ;程序执行时,将DP1送到0500H存单元DP1 DB'P1= $'ORG 0060H ;程序执行时,将DP2送到0600H存单元DP2 DB'P2= $'ORG 0070H ;程序执行时,将DP3送到0700H存单元DP3 DB'P3= $'ORG 0080H ;程序执行时,将COUNT送到0800H存单元COUNT DW 10 ;'$'为地址运算符,返回当前程序语句的地址偏移值DATA ENDS;定义数据段CSEG SEGMENTASSUME CS:CSEG,DS:DATAPUSH DS ;将DS压入堆栈SUB AX,AX;将AX存器容清空PUSH AXSTART:MOV AX,DATAMOV DS,AX ;将数据传给数据段DSMOV CX,COUNT ;设置计数器CX,最多为10MOV SI,0 ;给SI赋值为0LP1:MOV AL,BUF[SI] ;将BUF存单元的第si个容赋值给ALCMP AL,90H ;判断该学生的分数是否>=90JNB LP2 ;若不低于90则跳转到LP2CMP AL,60H ;判断该学生的分数是否>=60JC LP3 ;若产生进位则跳转到LP3INC P2 ;将分数在60-89的学生的分数个数存放到P2中 JMP LP5 ;跳转到LP5,即循环遍历数组BUFLP3: INC P3 ;将P3中的个数+1JMP LP5 ;跳转到LP5LP2: INC P1 ;给P1中的个数+1LP5: INC SI ;将SI进行+1操作,即下一个成绩分数LOOP LP1 ;循环LP1LEA DX,DP1MOV AH,09HINT 21HMOV DL,P1ADD DL,30H ;转对应的ASCII值MOV AH,2INT 21H ;将P1数据转10进制输出LEA DX,DP2MOV AH,09HINT 21HMOV DL,P2ADD DL,30H ;转对应的ASCII值MOV AH,2INT 21H ;将P2数据转10进制输出LEA DX,DP3MOV AH,09HINT 21HMOV DL,P3ADD DL,30H ;转对应的ASCII值MOV AH,2INT 21HMOV AH,4CHINT 21H ;将P3数据转10进制输出CSEG ENDSEND START对上述程序加上注释,并运行观察结果。

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

汇编上机实验七分枝程序
实验目的:
1、掌握利用间接转移指令JMP BX实现多岔分枝的方法。

2、宏替换指令MACRO及ENDM。

3、符号扩展指令CBW。

实验程序:
disp macro msg
lea dx,msg
mov ah,9
int 21h
mov ah,4ch
int 21h
endm
stack segment stack
db 256 dup(0)
stack ends
data segment
parm db 16 dup(?)
brtable dw offset bra,offset brb,offset brc
dw offset brd,offset bre,offset brf msga db 'I like my IBM-PC!$'
msgb db 'How are you!$'
msgc db 'Nibao College$'
msgd db 'This is a sample$'
msge db 'Wellcome use my coputer!$'
msgf db 'Theassemder language of 8088$'
errms db 'Error!! invalid parameter!!$'
data ends
code segment
assume cs:code,ds:data,ss:stack
start: mov ax,data
mov es,ax
mov si,80h
lea di,parm
mov cx,16
cld
rep movsb
mov ds,ax
cmp parm,2
jc err
mov al,parm+2
sub al,30h
jc err
cmp al,6
jnc err
lea bx,brtable
cbw
add ax,ax
add bx,ax
jmp [bx]
err: disp errms
bra: disp msga
brb: disp msgb
brc: disp msgc
brd: disp msgd
bre: disp msge
brf: disp msgf
code ends
end start
实验步骤:
1、输入并汇编此程序。

要求生成一个 .LST文件。

用TYPE命令检查 .LST文件,观察宏替换命令产生的指令集。

2、将OBJ文件连接成EXE文件(假设为AA。

EXE)。

3、用命令DEBUG AA.EXE XXX (XXX为任意字符串)将AA.EXE带参数调入DEBUG用D命令观察DS:0080处的命令行,记录80H处的内容和字符个数的关糸。

4、退出DEBUG。

直接带参数运行此程序:
AA n(n=0--5)
依次观察并记录 n从0到5时的运行结果。

相关文档
最新文档