1、 学习循环程序结构,掌握编写循环处理程序的方法和技巧。 2、 通过循环结构程序熟悉汇编语言程序设计的主要方法。 3、 了解和掌握程序设计过程中算法的选择。 4、 掌握汇编语言的调试方法。
二、 实验内容
以grade为首地址的10个字的数组中保存了学生的成绩,要求建立10个字的rank数组,
并根据grade中的学生成绩将学生名次填入rank数组中。
三、 实验编程提示
1、 在数据段中,先定义一个字数组变量grade,并存入10个学生的分数,然后在定义一个字数组变量rank dw dup (?)用于存放学生的名次 。 2、 一个学生的名次等于成绩高于该学生的人数加1。 3、 可以采用两重循环结构来实现。
4、 内层对应于每个学生的名次计算,在进入内循环之前使用指令mov ax,grade[bx]先把此学生的分数放在ax寄存器中,grade 的首地址放在si,当前被测学生的相对地址指针放在bx;进入循环后可用指令cmp ax,[si]计算此学生的名次,并把名次存入dx中,内循环结束后用mov rank[bx],dx 指令把该学生名次存入。
5、 外循环解决所以学生的名次计算;在退出内循环,并返回外循环之前要add bx,2使之指向下一个被测学生,注意在外循环重新初始化所需寄存器。
四、 实验步骤
1、 在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。
2、 用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第三步。 3、 用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。
4、 C>debug xxx.exe 回车,用r命令找到第一条指令,再用u命令找到程序结束的断点,再用G命令执行到断点;此时用D命令查看数据段的内容,前10个数据是学生分数,后面就应是所对应名次,如果正确,调试结束;否则分块执行查找错误,直到正确。
五、 思考
1、 内循环和外循环分别用什么指令实现? 请问存放分数、名次的起始地址分别是多少?
汇编编程作业和实验:显示ASCII码
一、
实验目的
1、 了解汇编语言子程序的概念。
2、 掌握汇编语言子程序的定义、调用和返回。 3、 掌握设计汇编语言子程序及过程的基本方法。
4、 清楚调用指令CALL及返回指令RET执行时堆栈内容及指针的变化。 5、 掌握子程序和主程序间的参数传递方法(地址表传递参数)。
二、 实验内容
试编写一个有主程序和子程序结构的程序模块。
将两个8位和16位二进制数分别转换为相应二进制数的ascii码。
三、
实验编程提示
21
1、 主程序提供转换数据的地址、转换后存放ASCII码的首地址共2个参量的地址。
首先在数据段中定义两个变量分别存放8位和16位的数据,再定义一个空变量区用于存放二进制相应的ASCII码,还要定义一个地址表用于存上述地址。
例如: zhu8 db 35h(也可通过键盘输入) Zhu16 dw 0ab39h(也可通过键盘输入) Ascbuf db 32 dup(0) Adr_tab dw 3 dup(0) 2、 主程序再将这两个地址组成一个地址表,并将地址表的首地址为入口参数传递给子程序。 Mov adr_tab,offset zhu8 Mov adr_tab+2,offset zhu16 Mov bx,offset adr_tab
3、 子程序的任务是实现二进制数的ASCII码转换。
4、 子程序可设置两个入口地址:一个为BIN8,转换8位二进制;一个为BIN16,转换16位二进制。
BIN8: MOV DI,[BX]
MOV DH,[DI]; DH取得待转换8位二进制数 而 BIN16: MOV DI,[BX+2]
MOV DX,[DI];DX取得待转换16位二进制数
四、 实验步骤
1、 根据上述算法先画出程序框图。
2、 在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。
3、 用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第三步. 4、 用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。 5、 运行程序:C> DEBUG XXX.EXE 回车 首先使用R命令,再通过U命令查看反汇编程序找到调用子程序前的断点。G命令执行到断点,D命令看数据段的内容是否正确。
执行CALL BIN8后,查看数据段相应地址是否有8位二进制的ASCII存入。 执行CALL BIN16后,查看数据段相应地址是否有16位二进制的ASCII存入。 如果程序有问题,则在debug环境下查找错误后,回到第一步。 如果想再C>下执行程序,可加入DOS调用显示,看屏幕显示。
6、显示信息可使用DOS调用MOV AH,9;INT 21H;DX存显示信息的偏移地址。
五、 思考
1、 子程序和主程序之间的参数传递是通过什么方式实现的?
2、 在DEBUG环境下观察执行CALL指令时CS、IP寄存器是否变化。 3、 在DEBUG环境下观察执行CALL、RET时堆栈的变化。
汇编编程作业和实验3-5:进制之间的转换与显示
一、
实验目的
1、 学习循环程序结构,掌握编写循环处理程序的方法和技巧。 2、 通过循环结构程序熟悉汇编语言程序设计的主要方法。 3、 了解和掌握程序设计过程中算法的选择。 4、 掌握汇编语言的调试方法。
22
二、 实验内容
编写一汇编语言程序,要求从键盘接收一个四位的十六进制数,并在显示器上显示与之等值的二进制数。
四、 实验编程提示
1、 设计一个循环四次的循环程序来接收键盘输入的四位十六进制数。 2、 使用DOS调用mov ah,1 int 21h接收键盘输入的字符,并把字符的ASCII码转换成相应的数值;注意把输入字符相应的ASCII码变成数时,分两种情况:第一种是处理0-9之间的字符,只需减去30H就变成数;第二种是处理A-F(a-f)的字符,还需分大小写的不同处理。 3、 在接收第二、三、四个字符时,要在前面输入数的基础上乘以10H后加上本次输入的数,因此需一个寄存器或变量存储每次生成的数。
4、 输入结束后,四位十六进制数已存储在某寄存器或变量里,再设计一循环16次的循环程序,在程序中可以通过逻辑左移(还有其它方法)指令使二进制位移入CF标志中,再用JC(JNC)判断CF=0或1。如果CF=1,则DL=31H 通过DOS功能显示“1”;如果CF=0,则DL=30通过DOS功能调用显示“0”。
五、 实验步骤
1、 在EDIT或其它编辑方式下输入源程序,并以XXX.ASM名保存。
2、 用MASM 文件汇编源程序,C>MASM XXX; 如有错误,回到第一步,如没错误,到第三步。 3、 用LINK连接程序,C>LINK XXX; 形成XXX.EXE文件。
4、 运行程序:C> XXX回车,屏幕光标应停在一行的起始位置,并等待键盘输入十六进制字符;如输入四位十六进制后回车,在屏幕上应显示相应的16位二进制,此时说明程序运行正确;否则进入调试程序步骤。
六、 思考
请观察每次输入一位十六进制后,存储变量(或寄存器)的变化。至少想出两种方法显示16位二进制。
23
实验三:8253定时器实验和作业
实验题目:8253模拟输入时钟和GATE信号实验
一、
实验目的
掌握定时器/计数器8253的基本工作原理和利用汇编语言对其初始化编程方法,以及设置计数初值的意义;掌握定时器/计数器在可编程接口电路所能完成的基本任务和功能,为今后掌握应用更为复杂的定时器/计数器打下基础。
重点熟悉8253的工作方式0、1、2、3,理解时钟CLK信号对定时器/计数器输出OUT信号的控制作用。通过该实验,能够直观观测到CLK、GATE信号的变化对输出波形的影响和控制,从而认识CLK、GATE信号的控制作用。
二、 实验内容
1、硬件连接线如题图1所示(实线):将单脉冲按钮PLUS与8253 CLK0信号连接,GATE0信号接高电平,8253的CS片选信号自定。将计数器0设置为方式0,计数器初值自定(比如N)。手动单脉冲按钮PLUS逐个输入单脉冲,使其输出高低电平,在示波器观测输出OUT0的输出。(当输入N+1个脉冲后OUT0变高电平)。 2、硬件连接线如题图1所示(虚线):将1MHZ时钟与8253 CLK0信号连接,GATE0信号接高电平,8253的CS片选信号自定。将计数器0设置为方式0,计数器初值自定(比如N),在示波器观测输出OUT0的输出。体会手动间断输入脉冲和连续输入周期性波形信号两者的区别和联系,达到进一步理解8253工作的目的。
3、硬件连接线题图2所示:编写程序分别观测2、3工作方式下的波形。要求2方式的输出频率为1000Hz,3方式的输出频率为2000Hz。本实验使用8253A的T0,GATE0通过K1接到+5V或地,CLK0接1MHZ的时钟脉冲,OUT0接示波器观测输出波形。当开关K1拨动时,2方式和3方式的输出波形如何变化?
三、 实验接线图
24
地址译码8253200-20FH自OUT1210-21FH定220-22FH译GATE1230-23FHCSCLK1接示波器240-24FH?码250-25FH?地址OUT0260-26FH连+5v270-27FH线GATE0CLK0单脉冲/PLUS1MHZ
题图1 8253模拟输入时钟信号连接图
地址译码8253200-20FH自OUT1210-21FH定220-22FH译GATE1接示波器230-23FH码CSCLK1240-24FH地250-25FH址OUT0260-26FH连270-27FH线GATE0CLK0 1MHZ题图2 8253模拟输入GATE信号实验连线图
25
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库汇编和接口技术实验指导书和作业-学生版(5)在线全文阅读。
相关推荐: