汇编语言程序设计实验七

合集下载

汇编语言实验报告1~7

汇编语言实验报告1~7

汇编语言实验报告1~7实验一:数据传输指令、算术指令、逻辑指令的使用实验内容:利用汇编语言,编写一个程序,实现两个整数相加,并将结果存入第三个变量中实验步骤:1. 声明三个变量a、b、c2. 将10存入a,将20存入b3. 将a的值传入al,将b的值传入bl4. 使用add指令将al和bl相加,将结果存入al5. 将al的值传入c6. 显示c的值实验结果:a db 10mov al,aadd al,blint 21hmov ax,4c00h实验二:分支指令的使用实验内容:利用汇编语言,编写一个程序,实现当输入的值为正数时,输出"I'm positive!";当输入的值为负数时,输出"I'm negative!";当输入的值为零时,输出"I'm zero!"1. 定义一个变量num2. 接收用户输入,并将其存储在num中3. 用test指令判断num的值4. 当num=0时,执行输出"I'm zero!"的指令7. 退出程序num db ?lea dx, promptsub al, '0'test num, numjz zerojs negjmp positiveneg:output:zero_msg db 'I am zero!$'prompt db 'Please enter a number:', 0dh, 0ah, '$'1. 定义变量i、sum,分别表示累加的数字和累加和2. 将i赋初值1,sum赋初值03. 进入循环5. 使用inc指令将i加16. 使用cmp指令将i与10比较,如果i小于等于10,继续循环,否则退出循环7. 输出结果mov bx, iloopStart:inc bx实验四:过程调用的使用2. 循环遍历1到100之间的每个数3. 用一个for语句嵌套一个for语句判断该数是否为质数4. 用两个自定义的子程序is_prime和output输出结果call is_primeskip:cmp i, 100prime_loop:div blretje newlinejmp done实验目的:掌握字符串操作指令的使用实验内容:利用汇编语言,编写一个程序,将字符串"SJTU"改为字符串"MIT"1. 定义字符串SJTU和MIT2. 定义两个变量i和len,分别表示字符串的下标和长度3. 使用movsb将SJTU的值传到MIT中4. 输出MITSJTU db 'SJTU'lea si, SJTUstringLoop:实验内容:利用汇编语言,编写一个程序,实现将输入的字符串写入一个文件中,然后再读取该文件中的字符串并输出2. 打开文件3. 将字符串写入文件中4. 关闭文件6. 读取文件内容8. 输出读取的字符串fileName db 'test.txt'content db 32 dup(?)mov cx, word ptr [content]实验内容:利用汇编语言,编写一个程序,在系统按下Ctrl+C时,输出一条信息并退出1. 声明函数handleCtrlC2. 获取中断21的地址,将其存储到文件头中org 100hmov [old_int_21h], es:bxmov dx, offset handleCtrlCend开始:。

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

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

汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是计算机中最基本的语言,通常用于处理硬件相关问题。

在这个实验中,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

以下是我们的实验报告。

正文:1. 实验环境我们使用的实验环境是Intel 8086微处理器与高级汇编语言。

微处理器使用的是PCB-512主板,而高级汇编语言是MASM。

2. 实验目的我们的实验目的主要是学习汇编语言的基础知识和编程技巧,包括了汇编语言的寄存器、指令、内存管理等方面的知识。

我们的另一个目的是掌握汇编语言的常用编程技巧,能够独立完成一些简单的汇编程序。

3. 实验内容我们的实验内容主要包括以下几点:(1)学习汇编语言的基础知识,包括寄存器、指令、内存管理等方面的知识。

(2)掌握汇编语言的常用编程技巧,包括数据输入输出、运算、跳转等基本操作。

(3)实践用汇编语言编写程序,如计算器、菜单等实用程序。

(4)了解8086微处理器的结构和原理。

4. 实验过程在这个实验过程中,我们完成了以下几个程序:(1)计算器计算器是一个简单的程序,主要用于实现两个数之间的加、减、乘、除等基本运算。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

(2)菜单菜单是一个实用程序,主要用于展示一个简单的菜单并实现用户选择相关功能的功能。

我们使用了汇编语言中的跳转指令、输入输出指令等实现了这个程序。

5. 实验结果在我们的实验中,我们成功完成了上述两个程序。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

6. 实验总结在这个实验过程中,我们学习汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

我们通过编写计算器和菜单等简单实用程序,加深了对汇编语言的理解和认识。

我们认为这个实验对我们今后的学习和工作都有很大的帮助。

结论:通过这个实验,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

汇编实验报告七

汇编实验报告七

计算机组成与汇编语言实验报告
通过结果说明程序运行结果正确。

2.调试程序2的运行结果如下。

说明程序实现的功能是查找0第一次出现的位置。

通过结果说明程序运行结果正确。

1.编写程序1运行结果如下。

4.编写程序2运行结果如下。

5.编写程序3运行结果如下。

实验情况与体会:通过本次上机实验,学习了数值转换。

实验过程中,遇到很多问题,比如程序一的编写,基本上都是学习书本以及依靠书本多做题才编出来的,仅有的几次上机实验,要抓紧时间学习和交流,时间挺少的。

在今后的学习和生活中,我们都需要相互学习、相互交流,共同进步。

学习是一个循序渐进的过程。

通过这次实验,使我了解到运行调试程序的不易,今后一定更加努力,把程序做到最好!对于不足之处,会积极改正。

汇编语言程序设计第七章 循环结构程序

汇编语言程序设计第七章  循环结构程序

2. LOOPE/LOOPZ 条件重复控制指令
指令汇编格式: LOOPE/LOOPZ AGAIN
操作: (1) CX CX-1
(2) 若CX≠ 0且ZF=1,则使控制转到AGAIN 标识的循环入口处,继续下一次循环,否则退出循 环体,执行后续指令。
例 比较两个字符串是否相等。
STR1 DB
‘12345’
DSEG SEGMENT
DATA DB
10,20,30,80,100,90,120
CNT DW 7
ADR DW 0FFFFH
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,ES:DSEG
START: MOV AX,DSEG MOV DS,AX
DATA1 00H
01H 00H 02H
: :
SI DATA2 00H
10H
50
00H

20H


:

:
DI SUM 00H
BX
00H
50
00H 50

00H

字 单
:
字 单

:

00H
00H
例7.1 设内存DATA1和DATA2开始分别存放50个无符 号字数据,编制程序将两个存储区对应字数据求和并存 入SUM开始的单元。
存储器中仅由字节或字组成的一组数据称为数据串。由字节组 成的数据串称为字节数据串,简称字节串;由字组成的数据串称为 字数据串,简称字串。一个数据串的长度最长不能超过64KB。
数据串操作指令的寻址方式为数据串寻址:
(1)指令中要处理的两个数据串应分别在数据段和附加段中定义。 (2)数据段中定义的数据串要用SI作指针;

汇编语言程序设计实验

汇编语言程序设计实验

汇编语⾔程序设计实验汇编语⾔程序设计实验指导实验⼀:字符串的显⽰及回车换⾏⼀.实验⽬的a)熟悉、掌握汇编语⾔的框架b)实现字符串的显⽰与回车换⾏⼆、实验重难点a)重点:需要运⽤mov指令实现数据的传送,操作结束须退出指令退出操作。

1.mov指令格式:Mov dest,src ;dest为⽬的操作数,src为源操作数Mov指令是双⽬操作,其中dest可为寄存器(R)、储存器(M.M),src可为R、M.M、⽴即数([IMM])。

2.退出指令:Mov ah,4chInt 21hb)难点:汇编语⾔不提供显⽰输出指令,也不提供回车换⾏指令,需借⽤DOS中的显⽰功能以及其中显⽰⼀个字符的功能。

如:回车符的ASSII码是0dh(13),换⾏符的ASSII码是0ah(10)。

1.借⽤dos显⽰输出:Mov dx,offset strMov ah,9Int 21h2.回车换⾏的实现:Mov dl,0dhMov ah,2 回车Int 21hMov dl,0ahMov ah,2 换⾏Int 21h三.程序代码a)字符串hello的显⽰:Data segment ;数据段开始Str1 db “hello$”;$为结束符Data ends ;数据段结束Code segment ;代码段开始Assume cs:code,ds:data Start:mov ax,dataMov ds,ax 取数据Mov dx,offset str1Mov ah,9Int 21hMov ah,4chInt 21hCode ends ;代码段结束End start四、实验结果b)实现hello world的回车换⾏显⽰:数据段添加:Str2 db “world$”代码段添加:Mov dl,0dhMov ah,2Int 21hMov dl,0ahMov ah,2Int 21h运⾏结果:实验⼆:减法运算及混合运算⼀.实验⽬的a)熟悉、掌握汇编语⾔的框架b)熟悉、掌握加法指令、减法指令c)实现加减法运算及其混合运算d)熟悉、掌握使⽤Debug命令⽅法及步骤⼆、实验重难点a)重点:在进⾏加减运算及其混合运算须⽤到加法指令、减法指令,需熟练掌握各条指令格式及功能。

汇编语言程序设计实验

汇编语言程序设计实验

汇编语言程序设计实验汇编语言程序设计实验是计算机科学与技术相关专业中非常重要的一门实践课程,旨在培养学生对计算机底层工作原理的深刻理解和实际操作能力。

本文将介绍汇编语言程序设计实验的基本目标、内容和实验过程,并分析其重要性和实际应用。

首先,汇编语言程序设计实验的基本目标是使学生掌握基本的汇编语言编程方法和技巧,理解计算机底层工作原理,并具备解决实际问题的能力。

通过实验,学生能够深入了解计算机内部的工作原理和指令系统,了解计算机如何执行指令和处理数据。

此外,实验还能培养学生的逻辑思维能力、问题分析能力和创新能力。

汇编语言程序设计实验的内容通常包括以下几方面:汇编语言基础知识、汇编指令集和程序设计实践。

首先,学生需要学习和掌握汇编语言的基本知识,包括数据类型、寻址方式、指令格式和寄存器等。

其次,学生需要熟悉常用的汇编指令集,如数据传送指令、算术与逻辑指令、转移指令和输入输出指令等。

最后,通过编写汇编语言程序,解决一些简单的实际问题,如数值计算、字符串处理、图形显示等。

在进行汇编语言程序设计实验时,学生通常需要经过以下几个步骤:问题分析、算法设计、程序编写和调试测试。

首先,学生需要对实验问题进行仔细分析,明确问题的要求和限制条件。

其次,学生需要设计符合问题要求的算法,确定算法的输入输出和执行过程。

然后,学生需要使用汇编语言编写程序代码,注意程序的逻辑结构和语法规范。

最后,学生需要对程序进行调试和测试,确保程序能够正确地运行和输出预期结果。

汇编语言程序设计实验在计算机科学与技术领域具有重要的意义和实际应用。

首先,汇编语言是理解计算机底层工作原理和指令系统的基础,对于从事底层开发、系统优化和调试工作的人员来说,掌握汇编语言是必不可少的技能。

其次,汇编语言程序设计可以帮助学生深入理解计算机体系结构和操作系统的工作原理,提高对高级语言编程的理解和掌握能力。

最后,汇编语言程序设计实验还能培养学生的问题解决能力、团队合作精神和创新思维,为学生今后的科研工作和职业生涯打下良好的基础。

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

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

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

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

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

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

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、运行程序。

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

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

汇编语言程序设计实验报告汇编语言程序设计实验报告引言汇编语言是一种低级语言,用于编写计算机的底层程序。

在计算机科学与技术领域,汇编语言程序设计是一门重要的课程。

本篇实验报告将介绍我在汇编语言程序设计实验中所学到的知识和经验。

实验目的本次实验的目的是通过编写汇编语言程序,加深对计算机底层原理的理解,并掌握汇编语言的基本语法和编程技巧。

实验环境在实验中,我使用了一台运行Windows操作系统的计算机,并安装了MASM 汇编语言开发工具。

实验内容1. 汇编语言基础知识在实验开始前,我先学习了汇编语言的基础知识。

汇编语言使用助记符来代表机器指令,与机器指令一一对应。

了解了寄存器、内存和指令的概念,并学会了如何使用它们来编写汇编程序。

2. 汇编语言程序设计在实验中,我编写了一些简单的汇编语言程序,以加深对汇编语言的理解和应用。

例如,我编写了一个计算两个数之和的程序,通过将两个数存储在寄存器中,并使用加法指令进行运算,最后将结果保存到指定的内存位置。

3. 汇编语言程序调试在编写汇编语言程序时,我遇到了一些错误和问题。

为了解决这些问题,我学会了使用调试工具来定位错误。

通过逐步执行程序,并观察寄存器和内存的变化,我能够找到程序中的错误并进行修正。

4. 汇编语言程序优化在实验中,我也尝试了对汇编语言程序进行优化,以提高程序的性能和效率。

通过减少指令的数量和使用更高效的算法,我成功地改进了程序的执行速度。

实验心得通过本次实验,我深刻体会到了汇编语言程序设计的重要性和挑战性。

汇编语言虽然复杂,但它能够直接操作计算机的硬件,提供了更高的灵活性和效率。

通过编写汇编语言程序,我不仅加深了对计算机底层原理的理解,还提高了问题解决和调试能力。

总结汇编语言程序设计实验是一门重要的课程,它为我们提供了学习计算机底层原理和编程技巧的机会。

通过实验,我掌握了汇编语言的基本知识和技巧,并成功编写和优化了汇编语言程序。

这次实验不仅加深了我的理论知识,还培养了我的实际操作能力。

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

实验七子程序的应用
【实验目的】
1.掌握子程序的定义
2.掌握子程序中的参数传递
3.掌握子程序的调用。

【实验环境】
配有汇编语言开发环境的计算机
【实验内容】
十进制数到十六进制数转换程序。

程序要求从键盘取得一个十进制数,然后把该数以十六进制形式在屏幕上显示出来。

【实验过程、结果】
;程序名:t6-2.asm
;功能:从键盘获取一个十进制数,
;用十六进制的形式输出
decihex segment
assume cs:decihex
;主程序部分
main proc far
call decibin
call crlf
call binihex
call crlf
main endp
;***************************
decibin proc near
mov bx,0
;从键盘获取一个数字,转换为二进制
;结果放在bx寄存器中
newchar:
mov ah,1
int 21h ;从键盘输入一个字符并显示在屏幕上 sub al,30h ;转换成ASCII码
jl exit
cmp al,9d
jg exit
cbw ;从al扩展到ax,数字现在存放在ax中 xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
jmp newchar
exit:
ret
decibin endp ;子程序结束
;将二进制转换为十六进制子程序binihex proc near
mov ch,4
rotate:
mov cl,4
rol bx,cl ;循环移位
mov al,bl
and al,0fh
add al,30h
cmp al,3ah
jl printint
add al,7h
printint:
mov dl,al
mov ah,2
int 21h
dec ch
jnz rotate
ret
binihex endp
;**************************
;显示输出和回车换行子程序
crlf proc near
mov dl,0dh
mov ah,2 ;显示一个字符 dl=字符 int 21h ;光标跟随移动
mov dl,0ah
mov ah,2
int 21h
ret
crlf endp
;*************************** decihex ends
end main
【实验心得】
本实验实现了从键盘获取一个十进制数,用十六进制的形式显示输出。

先定义了主程序,再调用将十进制转换为二进制子程序,并将结果保存在bx寄存器中,再通过寄存器bx传递参数到将二进制数转换为十六进制子程序中,最后调
用显示输出和回车换行子程序。

相关文档
最新文档