汇编语言实验报告七

合集下载

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

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

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

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

以下是我们的实验报告。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

汇编语言实验7实验报告

汇编语言实验7实验报告

汇编语言实验7实验报告一、实验目的本次实验旨在通过汇编语言编写程序,实现对字符串的操作和输出。

二、实验内容1. 编写一个汇编程序,要求从键盘输入一个字符串,并将其逆序输出到屏幕上;2. 编写一个汇编程序,要求从键盘输入两个字符串,并将它们拼接起来后输出到屏幕上。

三、实验过程1. 字符串逆序输出程序首先,需要从键盘输入一个字符串。

为了方便起见,我们可以先规定字符串的最大长度为100。

接着,我们需要定义两个变量:```buffer db 100 ; 用于存储输入的字符串length dw ? ; 存储输入的字符串长度```其中,db代表定义字节型变量,dw代表定义双字节型变量。

然后,我们需要使用INT 21H中断来读取用户输入的字符串。

具体而言,我们可以使用下面这段代码:```mov ah, 0Ah ; 设置INT 21H功能号为0Ahmov dx, offset buffer ; 将buffer的地址传给DX寄存器int 21h ; 调用INT 21H中断```该代码会将用户输入的字符串存储在buffer中,并且将其长度存储在length变量中。

接着,我们需要将该字符串逆序输出到屏幕上。

为了实现这个功能,我们可以使用栈来存储字符串中的每个字符,并逐个弹出来输出。

具体而言,我们可以使用下面这段代码:```mov si, offset buffer + 1 ; 将si寄存器指向字符串的第一个字符mov cx, length ; 将cx寄存器设置为字符串长度dec cx ; 字符串长度需要减1reverse:push byte ptr [si] ; 将当前字符压入栈中inc si ; 指向下一个字符loop reverse ; 循环直到所有字符都被压入栈中mov ah, 02h ; 设置INT 21H功能号为02h,表示输出一个字符print:pop dx ; 弹出栈顶元素int 21h ; 输出该字符loop print ; 循环直到所有字符都被弹出并输出完毕```2. 字符串拼接程序首先,需要从键盘输入两个字符串。

汇编语言实验报告模板总结计划总结七.doc

汇编语言实验报告模板总结计划总结七.doc

贵州师范大学实验报告实验室名称:白云综合楼703 实验日期:2012 年12 月 5 日学院(系)实验项目名称数学与计算专业、班级11 计算机机科学学院计算机组成基础之汇编语言实验七——寻址方式在结构化数据访问中的应用姓名指导老师成绩冉桂萍教师评语教师签名:年月日一、实验目的:1、掌握各种寻址方式的综合应用2、掌握双重循环问题的处理3、掌握结构化数据的访问二、实验任务Power idea 公司从 1975 年成立一直到1995 年的基本情况如下。

年份收入(千美元)雇员(人)人均收入(千美元)1975 16 3 ?1976 22 7 ?1977 382 9 ?1978 1356 13 ?⋯⋯⋯⋯⋯⋯⋯⋯1995 5937000 178000 ?在下面的程序中,已经定义如下的数据:assume cs:codesgdata segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990','1991','1992'db '1993','1994','1995';以上是表示 21 年的 21 个字符串dd 16,22,382,1356,2390,8000,1600,24486,50065,97479,140417,197514dd345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000; 以上是表示 21 年公司收入的 21 个 dword 型数据dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226dw 11542,14430,15257,17800; 以上是表示21 年公司雇员人数的21 个 word 型数据data endstable segmentdb 21 dup('year summ ne ?? ')table ends编程,将 data 段中的数据按如下的格式写入到table段中,并计算21年中的人均收入(取整),结果也按照下面的格式保存在table段中。

汇编语言实验报告

汇编语言实验报告









.CODE
_start:
mov eax,0
mov ebx,0
mov ecx,0
output promot
while:
input value,1
cmp value,0dh
je endWhile ;如果回车则结束
promot3 BYTE "The number isn't from 0 to 100,please Enter a right number ",0
value BYTE 16 DUP(?)










number DWORD ?
sum DWORD ?
answer BYTE "The four numbers' average is "
ave BYTE 11 DUP(?)
BYTE cr,LF,0
.CODE
_start:
output promot1
mov sum,0
mov ebx,0
firstagain:
output promot2
input value,16
atod value
judge:
cmp eax,100 ;num >100转移重新输入
(写不完时,可另加附页。)
年级
2012级
班号
1202班
学号
2012213537
专业
计算机科学与技术
姓名
郑凯伦
实验名称
实验3.1 分类统计字符个数
实验

汇编语言常见问题实验报告带正确源代码

汇编语言常见问题实验报告带正确源代码

汇编语言常见问题实验报告(带正确源代码)汇编语言程序设计实验报告计科0803余廷钊2008420692010 7-7实验一:字符回显实验目的:掌握DOS 1号功能的调用。

实验原理:ah 里面放功能号。

用int21调用。

实验内容:code segment assume cs:code start :mov ah,1 ;功能号放入ah int 21h ;调用DOS 功能 mov ah,4ch ;返回DOS int 21h code ends end start结果分析:DOS 1号功能可以把键盘的输入回显到屏幕上。

技术支持:Michael 实验二:显示字符T实验目的:开ah=1int21h结掌握DOS 2号功能的调用。

实验原理:ah 里面放功能号。

DL 里面放要显示的字符,用int21调用。

实验内容:code segment assume cs:code start :mov dl,'T'mov ah,2 ;功能号存入int 21h ;调用 mov ah,4chint 21h code ends end start 技术支持:Michael结果分析:DOS 2 号功能可以吧 DL 中的数据按照它对应的ASK 码字符输出。

实验三:显示‘how are you ’实验目的:掌握利用DOS 功能显示字符串。

实验原理:DOS 9 号功能可以把DS :DX 中的字符串显示出来,一‘$’为结束识别。

实验内容: data segment开ah=2 int21h结DL=‘T ’message db 'How are you?',13,10,'$' data ends code segmentassume cs:code,ds:data start :mov ax,datamov ds,ax ;数据段地址给ds mov ah,9mov dx,offset message ;送入偏移地址int 21h ;功能调用mov ah,4ch int 21h code ends end start结果分析:DOS 9 号功能可以把以DS :DX 为首地址,以‘$’为结束的字符串输出。

汇编语言实验七实验报告

汇编语言实验七实验报告

汇编语言实验七实验报告汇编语言实验七实验报告一、实验目的本次实验的目的是了解多重循环结构的编程技巧,并使用它们对数据进行排序和搜索。

二、实验内容本实验内容主要包括:1.使用多重循环结构实现数据的排序,如冒泡排序、快速排序等;2.使用多重循环结构实现数据的搜索,如线性搜索、二分搜索等;3.使用结构化编程实现控制结构,如条件判断、循环结构等来完成数据的排序和搜索。

三、实验过程1. 冒泡排序本实验使用多重循环结构,采用冒泡排序的方法,实现对一组数据的排序。

具体代码如下:.model tiny.stack 100h.dataarray dw 3, 1, 4, 0, 5, 2count dw 6temp dw ?.codemain procmov ax,@data mov ds,axmov ax,array mov si,axmov cx,count mov cl,2l1:mov di,simov bx,[di] inc dil2:mov ax,[di] cmp ax,bxjng l3mov temp,ax mov [di],bx mov bx,temp l3:inc diloop l2inc sidec cxjnz l1 ;循环结束 mov ax,countsub ax,2l4:mov di,simov ax,[di]mov bx,[di+2]cmp bx,axjng l5mov temp,axmov [di],bxmov [di+2],temp l5:inc sidec axjnz l4 ;循环结束 tmov ax,4c00hint 21hmain endpend main上述代码主要实现了多重循环结构,包括两个重复循环:一个用来对数据进行比较,另一个用来循环处理剩下的数据项,直到排序完成。

2. 线性搜索接下来实现线性搜索的功能,具体代码如下:.model tiny.stack 100h.dataarray dw 3, 1, 4, 5, 0, 2count dw 6key dw 4add dw 0.codemain procmov ax,@datamov ds,axmov ax,arraymov di,axmov cx,countl1:cmp [di], keyjne l3jmp l2l3:inc diloop l1l2:mov ax,add mov bx,count sub bx,1mul bxadd ax,key mov bx,2div bxinc axmov bx,4mul bxmov di,axmov ax,array add ax,dimov si,axmov ax,[si] mov bx,keyje l4mov ax,-1l4:mov ax,4c00hint 21hmain endpend main上述代码主要实现了线性搜索的功能,通过比较数组中的每一项与给定的关键字,如果相同,则记录下该项的偏移量,然后根据偏移量计算出索引,最终返回数组中搜索到的数据。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

王爽汇编实验(七)

王爽汇编实验(七)

王爽汇编实验(七)王爽汇编语⾔实验七1 assume cs:codesg2data segment3 db '1975','1976','1977','1978','1979','1980','1981','1982','1983'4 db '1984','1985','1986','1987','1988','1989','1990','1991','1992'5 db '1993','1994','1995'6;以上是表⽰21年的字符串 4 * 21 = 8478 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,1975149 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,593700010;以上是表⽰21年公司总收⼊的dword型数据 4 * 21 = 841112 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,822613 dw 11542,14430,15257,1780014;以上是表⽰21年公司雇员⼈数的21个word型数据 2 * 21 = 4215data ends1617table segment18 db 21 dup ('year summ ne ?? ') ; 'year summ ne ?? ' 刚好16个字节19 table ends1 assume cs:code,ds:data,es:table23data segment4 db '1975','1976','1977','1978','1979','1980','1981','1982','1983'5 db '1984','1985','1986','1987','1988','1989','1990','1991','1992'6 db '1993','1994','1995'7;以上是表⽰21年的字符串 4 * 21 = 8489 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,19751410 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,593700011;以上是表⽰21年公司总收⼊的dword型数据 4 * 21 = 841213 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,822614 dw 11542,14430,15257,1780015;以上是表⽰21年公司雇员⼈数的21个word型数据 2 * 21 = 4216data ends1718table segment19 db 21 dup ('year summ ne ?? ') ; 'year summ ne ?? ' 刚好16个字编程,将data段中的数据按如下格式写⼊到table段中,并计算21年中的⼈均收⼊(取整),结果也按照下⾯的格式保存在table段中别⼈的版本。

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

贵州师范大学实验报告
实验室名称:白云综合楼703 实验日期:2012年12 月5 日
;以上是表示21年公司雇员人数的21个word型数据
data ends
table segment
db 21 dup('year summ ne ')
table ends
编程,将data段中的数据按如下的格式写入到table段中,并计算21年中的人均收入(取整),结果也按照下面的格式保存在table段中。

三、实验过程原始记录
1、源程序
codesg segment
start:
mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov si,0
mov di,0
mov cx,21
s:
mov ax,ds:[si]
mov es:[di],ax
mov ax,ds:[si+2]
mov es:[di+2],ax
mov ax,ds:[si+84]
mov es:[di+5],ax
mov dx,ds:[si+84+2]
mov es:[di+7],dx
push cx
mov cx,ds:[84+84+bx]
mov es:[di+0ah],cx
div cx
pop cx
mov es:[di+0dh],ax add si,4
add bx,2
add di,16
loop s
mov ax,4c00h
int 21h
codesg ends
end start
2、编译、连接过程记录
3、用Debug中的d命令验证实验结果
四、实验中发现的问题总结:。

相关文档
最新文档