最新实验三汇编语言程序设计3

合集下载

新版汇编语言程序设计实验指导书(精)

新版汇编语言程序设计实验指导书(精)

新版汇编语言程序设计实验指导书(精)汇编语言实验指导书目录实验一debug的启动及其基本命令的使用(2实验二内存操作数及寻址方法(6实验三汇编语言程序的调试与运行(8实验四查表程序设计(10实验五系统功能调用(12实验六循环程序设计(13实验七分支程序设计(15实验八子程序设计(18实验九综合程序设计(20附录实验报告(21实验一debug的启动及其基本命令的采用一.实验目的:掌握debug的基本命令及其功能二.实验内容:debug就是专门为汇编语言设计的一种调试工具,它通过STM,设置断点等方式为汇编语言程序员提供更多了非常有效率的调试手段。

1、debug程序的启动在dos提示符下,可以键入命令:c>debug[d:][path][文件名][参数1][参数2]其中文件名就是被调试文件的名称,它须就是继续执行文件(exe,两个参数就是运转被调试文件时所须要的命令参数,在debug程序调到后,发生提示符“-”,此时,可以键入所需的debug命令。

在启动debug时,如果输入了文件名,则debug程序把指定文件装入内存。

用户可以通过debug的命令对指定文件进行修改、显示和执行。

如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用debug的命令进行修改、显示和执行。

2、debug的主要命令(1编订命令a,格式为:-a[地址]该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。

(2反汇编命令u,有两种格式:1-u[地址]该命令从选定地址已经开始,反汇编32个字节,若地址省略,则从上一个u命令的最后一条指令的之下一个单元已经开始表明32个字节。

2-u范围该命令对指定范围的内存单元进行反汇编,例如:-u04ba:01000108或cu04ba:0100l9此二命令就是耦合的。

(3运转命令g,格式为:-g[=地址1][地址2[地址3。

汇编语言程序设计上机实验报告(实验三)-循环程序设计

汇编语言程序设计上机实验报告(实验三)-循环程序设计
0~9 ------ -37h
2、学习应用了循环指令并了解了其特点:
A、循环指令不影响标志位
B、其功能为使寄存器CX的值减1,如果结果不等于0,则循环
至标号,否则顺序执行。
程序1:
data segment
input1 db ' please input your numbers:',0dh,0ah,'$'
input2 db 'the binary number is :',0dh,0ah,'$'
input3 db ' your data is wrong,please input again:',0dh,0ah,'$'
enter db 0dh,0ah,'$'
data ends
code segment
汇编语言程序设计上机实验报告(实验三)
一、实验题目、内容及要求:
题目:循环程序设计
内容:编写一程序,要求从键盘接收一个4位十六进制数,在终端上显示与它等值的二进制数。
要求:实验前要作好充分准备,包括程序清单、调试步骤、调试方法,对程序结果的分析等。本实验要求在EDIT下编写完整的汇编语言程并生成可执行文件运行。
or bl,al
jmp Again
remind:mov ah,09h
lea dx, input3
int 21h
jmp back
stmov:mov ah,09h
lea dx,enter
int 21h
lea dx, input2
int 21h
mov cx,10h
clc
loopst:mov al,30h

北京理工大学汇编语言实验报告实验三字符串操作实验

北京理工大学汇编语言实验报告实验三字符串操作实验

北京理工大学汇编语言实验报告实验三字符串操作实验实验三字符串操作实验一、实验目的1)熟悉串操作指令的功能与应用;2)掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序;3)了解汇编语言字符串处理基本流程;二、实验软硬件环境1)硬件环境:惠普64位一体化计算机及局域网; 2)软件环境:windows 8,红蜘蛛管理系统,MASM for Win dows三、实验相关知识1)字符串操作流程SI寄存器保存源串首地址;DI寄存器保存目的串首地址;CX寄存器保存字符串长度;CLD或STD指令设置字符串处理方向;2)重复前缀指令重复次数由计数寄存器CX中存放的值决定,指令每重复执行一次,计数器CX中值减1,当CX 中值减至0时,停止重复执行,继续执行下一条指令。

寄存器的E内容条件为复前罡重复与操作直配合工作的字符串处理指令有MOVSSTOS^ LODS当REPE/REP判断计数寄存器的内容CX是否为0或ZF=O(即比较的两个操作数不等)亠只要满足一个则重复执行结束,否则继续执行。

可以与REPE/REP配合工作的串指令有CMP和SCAS0或體茴比较P判个操数数相等的内容要满足一个则重复执行结束,否则继续执行。

可以与REPE/REP配合工作的串指令有CMPS口SCAS3)字符串操作指令lodsb、lodsw :把DS:SI 指向的存储单元中的数据装入AL或AX然后根据DF标志增减SI ;stosb、stosw :把AL 或AX 中的数据装入ES:DI指向的存储单元,然后根据DF标志增减DI ;movsb movsw把DS:SI 指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据DF 标志分别增减SI和DI ;scasb、scasw:把AL或AX中的数据与ES:DI指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI ;cmpsb cmpsw把DS:SI指向的存储单元中的数据与ES:DI指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI ;rep :重复其后的串操作指令。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

8086 汇编语言分支程序设计

8086 汇编语言分支程序设计

汇编语言程序设计实验报告学院:计算机科学与技术专业:计算机科学与技术班级:计科131MOV AH,2INT 21H ;显示高位ASCII 码MOV DL,BLAND DL,0FHCMP DL,9JBE NEXT2ADD DL,7NEXT2: ADD DL,30HMOV AH,2INT 21H ;显示低位ASCII 码MOV AH,4CHINT 21HCODE ENDS ;返回DOSEND START使用相应的文本编辑器建立文件three.asm,内容如上所示。

2.生成可执行文件:1>.汇编:C:\masm> masm three;2>.连接:C:\masm> link three;3.运行及调试:1>. 运行:C:\masm>debug three.exe-U0 ;通过反汇编查找程序的断点-T=0 2 ;加载数据段-D0 ;查看原始数据是否正确-G=0 XX ;运行程序至断点XX 处-R ;查看程序运行结果以上命令执行的细节可参照实验二中的说明。

4.调试:修改AL 的内容,判断此程序是否能正确显示其中的内容的方法。

例:修改AL 内容为9AH:-L ;重新加载可执行文件-A0 ;重新修改MOV AL,3EH 指令361E:0000 MOV AL,9A361E:0002-G=0 xx;带断点运行-R ;查看程序运行结果实验二:编写一个数据区移动程序,要考虑源数据区与目的数据区有重叠的情况。

1.源程序如下所示,编辑下面的源程序到文件lab.asm 中:使用相应的文本编辑器建立文件lab.asm,内容如上所示。

2.生成可执行文件:1>.汇编:C:\masm> masm lab;2>.连接:C:\masm> link lab;N1:INC NUMBERJMP NUMBERJMP AGAINN2:INC CHARJMP AGAINEXIT:LEA DX,STR1MOV AH,09HINT 21HMOV DL,NUMBERADD DL,30HMOV AH,2INT 21HLEA DX,STR2MOV AH,09HINT 21HMOV DL,CHARADD DL,30HMOV AH,2INT 21HLEA DX,STR3MOV AH,09HINT 21HMOV DL,RESTADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START使用相应的文本编辑器建立文件lab1.asm,内容如上所示。

汇编语言学习知识程序设计实验

汇编语言学习知识程序设计实验

汇编语⾔学习知识程序设计实验⽬录⽬录 (1)实验⼀利⽤DEBUG熟悉常⽤指令的使⽤ (2)⼀、实验⽬的 (2)⼆、⽰例 (2)三、实验题 (2)实验⼆汇编程序和连接程序的使⽤ (6)⼀、实验⽬的。

(6)⼆、⽰例。

(6)三、实验题。

(8)实验三顺序结构程序设计 (11)⼀、实验⽬的 (11)⼆、⽰例 (11)三、实验题 (12)四、实验报告 (15)实验四循环结构程序设计 (16)⼀、实验⽬的 (16)⼆、⽰例 (16)三、实验题 (18)实验五分⽀结构程序设计 (21)⼀、实验⽬的 (21)⼆、⽰例 (21)三、实验题 (22)实验六⼦程序设计 (29)⼀、实验⽬的 (29)⼆、实验题 (29)实验⼀利⽤DEBUG熟悉常⽤指令的使⽤⼀、实验⽬的熟悉指令系统,掌握常⽤指令的⽤法;通过实验加深对各种寻址⽅式的理解;能熟练使⽤DEBUG中的命令对指令进⾏反汇编,观察并了解机器代码。

⼆、⽰例请分别⽤⼀条汇编语⾔指令完成如下功能:(过程略)。

1.⽤寄存器BX和SI的基址变址寻址⽅式把存储器的⼀个字节与AL寄存器的内容相加,并把结果送到AL中。

ADD AL,[BX][SI]2.⽤位移量为0520H的直接寻址⽅式把存储器中的⼀个字与3412H相加,并把结果送回该存储单元。

ADD WORF PTR [0520H],3412H三、实验题1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执⾏完后AX寄存器的内容。

要求输⼊指令,相应存储单元的内容要事先设置,单步P执⾏,观察执⾏结果。

(设置存储器的值)①.MOV AX,1200H②.MOV AX,BX③.MOV AX,[1200H]④.MOV AX,[BX]⑤.MOV AX,1100[BX]⑥.MOV AX,[BX][SI]⑦.MOV AX,1100[BX][SI]⑧ .MOV AX,[BP+SI+04]2、上机调试、验证教材习题3.15。

《汇编语言》实验三——编程、编译、连接、跟踪

《汇编语言》实验三——编程、编译、连接、跟踪

《汇编语⾔》实验三——编程、编译、连接、跟踪实验任务⼀:将下⾯的程序保存为t1.asm⽂件,将其⽣成可执⾏⽂件t1.exe。

⽤记事本编辑代码,保存为t1.asm:编译、连接,⽣成可执⾏⽂件:运⾏程序:得到输出结果为06下⾯研究修改line4和line9中寄存器dl的值,对结果产⽣的影响。

为简化编译、连接的过程,决定采⽤批处理⽂件的形式来完成这个过程:⽣成⼀个名为m_l.bat的批处理⽂件。

修改:line4的3—>4,line9的6—>8:编译、连接、执⾏:得到输出结果08⽤debug对t1.exe调试:⽤r命令查看各寄存器的值:发现cs的值为076A,ds的值为075A,满⾜(cs)=(ds)+10H查看psp的内容:可以看到,psp的头两个字节的确是CD 20使⽤u命令反汇编,观察源代码:单步调试:实验任务⼆:将下⾯的程序保存为t2.asm⽂件,将其⽣成可执⾏⽂件t2.exe⽤记事本编辑代码,保存为t2.asm:编译、连接,⽣成可执⾏⽂件:运⾏结果:在屏幕的左上⽅出现红⾊数值36下⾯研究修改line7和line10的部分数据对结果产⽣的影响①line4的 0433h—>0432h, line10的 0436h—>0439h编译、连接、运⾏:运⾏结果:在屏幕的左上⽅出现红⾊数值29①line4的 0433h—>0333h, line10的 0436h—>0336h编译、连接、运⾏:运⾏结果:在屏幕的左上⽅出现蓝⾊数值36从以上3组结果可以看出,line7控制第⼀个字符的输出,line10控制第⼆个字符的输出。

⼆者[bx]的⾼字节决定了颜⾊,低字节控制显⽰的字符。

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

汇编语言程序设计 实验报告书
熟练,掌握循环程序设计的方法和要点
掌握冒泡排序放进行循环程序设计的方法,掌握XCHG、LOOP、JAE等指令的应用
汇编语言程序设计实验报告书
学号:姓名:学习中心:
课程名称
实验项目
实验项目类型
验证
演示
综合
设计
其他
指导老师
成绩
一、实验目的:
(1)熟练掌握循环程序设计的方法和要点
(2)掌握冒泡排序放进行循环程序设计的方法
(3)掌握XCHG、LOOP、JAE等指令的应用
实验内容
(1)用全屏编辑软件建立源程序
(2)用masm.exe汇编语言对源程序进行汇编,形成目标文件
mov al,[si]
cmp al,[si-1]
jae noxchg
xchg al,[si-1]
mov [si],al
noxchg:
dec si
loop lp2
pop si
pop cx
loop lp1
mov ah,4ch
int 21h
code ends
end start
2.用masห้องสมุดไป่ตู้编译
连接
DEBUG
(3)用link.exe连接程序对目标程序进行连接,形成可执行文件
(4)用DEBUG对连接通过的可执行程序进行调试
三、实验过程原始数
1.源程序
n=100
stack segment stack 'stack'
dw 100h dup(?)
top label word
stack ends
data segment
mov cx,databuf
lea si,databuf+2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三汇编语言程序
设计3
实验三汇编语言程序设计(3)
一、实验目的
进一步掌握汇编语言程序的编程方法和技巧
二、实验内容
1. 编写一个程序,进入保护模式,并在保护模式下用不同属性在屏幕上显示字符串(字符串内容自定),然后返回实模式。

2. 编写一个游戏程序,实现如下功能:
◆首先用蓝色清屏
◆在在屏幕中央显示由字符串“-============#”组成的黄色的小蛇,#为蛇
头,-为蛇尾
◆按下方向键可以控制上述小蛇按蛇行方式在屏幕上行走
◆在行进过程中,蛇头只能左转、右转或继续前进,不能掉转180度
提示:
①通过调用INT 16H的0号功能可以读取光标控制键的扩展码
光标控制键:↑↓←→
扩展码(十进制):72 80 75 77
②参考教材的P146-148了解在指定位置用指定属性显示字符的方法
3. (选做)修改期中试题中的浮点数计算程序,实现能够计算加、减、乘、除四则运算的计算器功能。

例如,用户输入2.3+1.1,则输出3.4;用户输入非法的表达式,则给出出错信息。

三、实验报告要求
前两个实验内容的程序说明和程序清单。

相关文档
最新文档