汇编与接口实验报告2

上传人:pu****.1 文档编号:488043988 上传时间:2022-10-15 格式:DOCX 页数:15 大小:272.10KB
返回 下载 相关 举报
汇编与接口实验报告2_第1页
第1页 / 共15页
汇编与接口实验报告2_第2页
第2页 / 共15页
汇编与接口实验报告2_第3页
第3页 / 共15页
汇编与接口实验报告2_第4页
第4页 / 共15页
汇编与接口实验报告2_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《汇编与接口实验报告2》由会员分享,可在线阅读,更多相关《汇编与接口实验报告2(15页珍藏版)》请在金锄头文库上搜索。

1、汇编与接口实验报告学号: 2013302534 姓名:杨添文班号: 10011303一、实验目的1、掌握循环结构程序的设计、调试2、熟悉无符号数的大小比较指令3、掌握汇编语言编写排序程序的思路与方法4、掌握分支程序编程方法二、实验内容1、多字节无符号数加法、设计一软件延时器,并在屏幕上显示软件延时器倒计时过程;2、单字节无符号数排序、去极值滤波;3、键盘及屏幕显示功能调用。三、实验要求1、无符号加法与软件延时器(1)多字节无符号加法:在 DATAS存放10个双字节无符号数,用循环结构设计程序,通过程序运算,把这10 个双字节无符号数相加,其和存入 RESULT定义的四个字节单元当中, 要求用

2、16 位寄存器完成编程 (范例为用 32 寄存器实现)。(2)设计一软件延时器,并在屏幕上显示16 进制(F 0 )倒计时及正计时及(0 FM程。(范例:做一延时约1秒的软件延时器,在屏幕上按9、8、。顺序显示软件延时倒计时过程。 )对于“学号”为奇数的同学在计算机屏幕上的显示0-FF-0 一列。对于“学号”为偶数的同学在计算机屏幕上的显示显示两列,第一列0-F,第二列F-0 列。2、排序与去极值滤波(1)单字节无符号数排序:在DATANUM单元存放双字节无符号数,表示要排 序数据的个数,而从DATASI元开始存放要排序的单字节无符号数据,数据个数至少10个。程序运行之后,这些数据按照由大到小

3、的顺序仍然存放于DATASI元开始的单元。(2)去极值滤波:某控制系统为了抗干扰,采用去极值滤波法处理采集数据,取连续 6 个 A/D 采样值( 12 位双字节,低 12 位) ,要求去掉最大值和最小值, 将余下 4 个数求平均值, 用该平均值代表当前时刻系统状态的真值。 试编一 程序完成这个滤波过程。3、键盘及屏幕显示功能调用试编一程序扫描键盘,当B键按下时,在屏幕上显示 09循环计数;S键 按下时停止计数;再按B键继续计数过程。E键按下时退出程序。四、流程图与代码1、多字节无符号数加法:(所用寄存器为16位) (1)流程图:(2)代码:.MODELSMALL .DATADATA1 DW43

4、21H,2265H,3333H,4444H,5555H,6666H,7777H,8888H,9999H,0AAAAH RESULTdw?,?.CODE .startupMOV SIQFFSEDATA1 ;设指针累加次数清累加器清进位累加器;累加一个数到AX ;将进位累加到DX;改指针;循环;存结果MOV CX,10 MOV AX,0 MOV DX,0LOP:ADD AX,siADCDX,0 INCSI INCSI LOOP LOPMOV RESULT,AXMOV RESUL+2,DX .EXITEND(3)运行结果:i=lJconriHnd= X106FZ:OO06 Zt 43 65 ZZ 3

5、3 33 44 44 5S 55 66 66 *Cel,33MUUff06FZ:0014 ? 7? BU 33 33 M AA Ffl DC G3 OE) ww 2、延时器设计(本人学号为偶数,因此以下的程序是在计算机屏幕上显示两列,第一列0-F,第二列F-0列。)(1)流程图:主程序流程图:延时子程序流程图:(2)代码:.model small.datadataldb 5 dup (20H)numldb 30hnum2db 46h ,0ah,0dh$.code.startupmov cx,10h;设循环次数lop:mov ah,09h;显示功能调用mov dx,offset data1int

6、 21hcall near ptr delay ;调用延时子程序inc num1dec num2cmp num1,3ahjnz next1;num1 为冒号:时跳转 next1mov num1,41hnextl:cmp num2,40hjnz next2mov num2,39hnext2:loop lopnop nop .exitnopdelay proc near uses cx bx mov bx,06ffhdelay1:mov cx,0hloop $ dec bx jnz delay1 retdelay endp end(3)运行结果:;num2位时跳转next2;延时子程序;06ffh

7、,设第二时常数自身循环CX次 第二时常数减1 不为零循环3、单字节无符号数排序(1)流程图:(2)代码:( 3)运行结果:.MODELSMALL.586.STACK200H.DATAnum db 10data1 db 3h,23h,55h,12h,89h,99h,5fh,6ah,29h,47h.CODE.STARTUPmov bl,num;数据个数dec bllop1:movzx cx,bl ;扩展为 16 位mov si,0lop2:mov al,data1sicmp al,data1si+1jb lop3;sisi+1inc siloop lop2jmp nextlop3:xchg al,

8、data1si+1mov data1si,alinc siloop lop2next:dec bljz endljmp lop1endl:nop.EXITEND4、去极值滤波(1)流程图:开始调用程序进行排序掐头去尾送指针求余下数的均值结果送回EXIT )(2)代码:.model small.586.datadatanum db 6datas dw 0123h,0abch,0234h,0345h,0456h,0567h.code.startupcall px;排序mov sioffset datas+2才自头去尾送指针mov cx,4;送累加次数clc4青进位mov ax,0qh:add ax

9、,si;累加adc dx,0inc siinc siloop qhshr ax,2;除 4mov datas,ax;存结果到 DATAStt位.exitnoppx proc nearmov bl,datanum;取字长dec BLlop0:movzx cx,bl ;送比较次数mov si,0lop:mov ax,datassi ;送前数cmp ax,datassi+2 ;与后数比较jbe jh;若大于则跳转到 jhinc siinc siloop lop;循环比较jmp next ;一轮排序完jh:xchg ax,datassi+2 ;交换mov datassi,axinc siinc sil

10、oop lopnext:dec bl;修改比较次数jz finishjmp lop0finish:nop;结束retpx endpend3)运行结果:=19command-It06F5:00G5 67 G5 56 04 15 GB 34 QZ Z3 1 E3 3A g.U.E.4U. . :|O5F5:0011 01 A3 CA 01 A3 CC 01 65 16 GZ 50 F霭|g鬻qgggg喔蓝崎赞逐嗑8ff稼产:5、键盘及屏幕显示功能调用(1)流程图:(2)代码:.model small.datamessl db press b button - count,0dh,0ahmess2

11、db press s button - stop,0dh,0ah mess3 db press e button - exit,0dh,0ah,$mess4 db end,0dh,0ah,$count db 5 dup (20h)count1 db 30h,0dh,$.code.startupmov ah,09h ;显示提示信息mov dx,offset mess1int 21hlea si,count1;count_;设处理指针scan:call near ptr delay;调延时、键扫程序or bx,bx;判有无键动jnz scan1;有键动,转键处理jmp si;无键动,转当前处理程序

12、scan1: ;键处理程序cmp al,b je b_proc cmp al,s je s_proc cmp al,e je e_proccall delayjmp sib_proc: lea si,count_;B 键处理jmp scans_proc: lea si,stop;S 键处理jmp scane_proc: nop ;E 键处理nop.exitnopcount_: inc count1;修改显示数字mov al,3ah;比较超限cmp al,count1ja down;若不超限,调显示mov count1,30h;超限,设启始值down: mov ah,09h;显示功能调用lea

13、dx,count ;ds:dxint 21hjmp scan stop: jmp scannopdelay proc near uses cx;延时子程序mov bx,300h;设第二时常数delayl: mov cx,0hloop $mov dl,0ffhmov ah,06hint 21hjnz key_retdec bxjnz delay1jmp delay_retkey_ret:mov bx,1delay_ret:retdelay endpend;自身循环CX次;监测键动;若标志位ZF=0,表示AL有来自键盘的字符;若标志位ZF=1,表示没有得到字符,且 AL=0;若有键动,延时终止,转键处理;第二时常数减1;不为零循环;做键动标志(3)运行结果:按下B键开始计数:MHDOSBox 0.74r Cpu speed: max 100% cycles, Frameskip 0, Pre

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号