资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验一 Fibonacci数列实现一.实验目的及内容1、实验目的进一步掌握子程序的设计方法,熟悉递归程序的设计2、实验要求掌握递归程序的调用、返回及入口、出口参数的传递方法。3、实验内容程序接收由用户键入的数N,根据给定的N值,计算Fibonacci数。Fibonacci数的定义如下:FIB(1)=1FIB(2)=1FIB(N)=FIB(N-2)+FIB(N-1) N=3二.实验环境Masm For Windows集成实验环境共享版 编写编译程序 三.实验方法 程序接收用户输大于20小于30的十进制正整数,存入输入缓冲区后再把它转化为十六进制数,存入内存单元N中。调用FIB函数求Fibonacci数,结果高位存在RESULT2H,低位存在RESULT2L,最后调用OUTPUT函数将结果以十进制的形式显示出来。程序亮点在于将结果转换为十进制时采用了除10取余的方法,对于高位通过在适当的位数加65536(ADD65536)的方式巧妙地将乘法转化为加法。四.实验步骤开始CALL INPUTCALL FIBCALL OUTPUT结束1.显示提示,并接受一个数字N;2.调用fib递归 得到结果存入内存;3.调用显示10进制函数OUTPUT。五.实验结论输入数据 25(十进制)输出数据 75025(10进制) 输入19与31,验证边界满足,如下图:六. 实验分析 本实验使我进一步掌握子程序的设计方法,熟悉递归程序的设计,丰富了我写汇编程序的经验。实验二 窗口颜色改变实验一、实验目的编写程序,在屏幕上设置任意两个数值,以此为对角线坐标点开设窗口,设定热键控制窗口的颜色,使屏幕颜色有浅至深。二、实验要求要求用汇编实现,并使用热键控制颜色改变。三、实验环境Masm For Windows集成实验环境共享版 编写编译程序四、实验步骤 输入两个坐标,作为对角线坐标,建立窗口 用热键控制颜色,看颜色变化。五、实验结论输入坐标:top_left为50,50,;bottom_right为100,100实验三 学生信息管理系统一、实验目的 利用汇编语言编写学生信息管理系统二、实验要求 熟悉汇编语言编程,编写学生信息系统三、实验内容建立学生成绩信息库,包括学号、成绩、名次,从键盘输入学号,实现成绩、名次等信息的查询:学号 姓名 成绩 名次01 cjh 80 102 np 99 3四、实验环境 Masm For Windows集成实验环境共享版 编写编译程序五、实验结论列出所有学生信息,输入l查询记录,输入s,并且输入ID号查询插入记录,输入i 实验四 虚拟实验平台模型机实验1. 实验目的1) 掌握模型机的基本原理和结构2) 掌握机器指令与微程序的对应关系;3) 掌握机器指令的执行流程;2. 实验设备74LS181芯片两片,memory 6116一片,微程序控制存储器芯片一片,编译器芯片一片,八位同步计数器芯片一片,ALU_G芯片一片,PC_G芯片一片,74LS273芯片若干,输入,输出芯片各一片,选择器芯片若干,连接器芯片若干,灯泡若干,开关若干等。3. 实验原理图1 模型机示意图图1中所示模型机包括运算器、存储器、微控器、输入设备、输出设备以及寄存器。这些部件的动作控制信号都有微控器根据微指令产生。需要特别说明的是由机器指令构成的程序存放在存储器中,而每条机器指令对应的微程序存储在微控器中的存储器中。模型机详细原理见附件。 4. 实验内容1) 选择实验设备,将所需要的组件从组件列表中拖到实验设计流程栏中2) 搭建实验流程:根据原理图1和电路图(见附件),将已选择的组件进行连线。3) 输入机器指令:选择菜单中的“工具”,再选择“模型机调试”,在指令输入窗口中输入如下指令:本实验设计机器指令程序如下:地址(二进制)内容(二进制)助记符说明0000 00000000 0000IN R0“INPUT DEVICE”-R00000 00010001 0000ADD 0AH,R0R0+0AH-R00000 00100000 10100000 00110010 0000STA R0,0BHR0-0BH0000 01000000 10110000 01010011 0000OUT 0BH0BH-LED0000 01100000 10110000 01110100 0000JMP 00H00H-PC0000 10000000 00000000 1010运算数据自定0000 1011求和结果4) 这里做的是个加法运算,第一个加数已经存入到内存的0000 1010单元中,第二个加数是需要手工输入的。在实验运行面板中点击“运行”按钮,选择“输入”芯片,设置输入的数据后,双击连接“输入”芯片的单脉冲,这样第二个加数就设置好了。5) 在实验运行面板中双击连续脉冲,模型机便开始工作,观察各个芯片的状态。或者在模型机调试窗口中(如图2所示)点击“指令执行”选项卡,在模型机调试窗口中点击“下一时钟”,模型机机执行到下一个时钟,点击“下一微指令”,模型机机执行到下一个微指令,点击“下一指令”,模型机机执行到下一条指令。观察各个芯片的状态,思考模型机的运行原理。5:实验调试在指令输入框中输入指令,点击输入按钮,然后执行指令,点击下一时钟,下一微指令图2 模型机调试窗口实验心得:通过这次汇编组成原理课程设计,更加深入的了解了汇编指令的执行过程,更加透彻得明确了计算机执行指令的过程,特别是虚拟平台的模型及实验,让我知道计算机执行指令时的具体过程。对于计算机的底层运算不在陌生。源码附录 1:Fibonacci数DATAS SEGMENT STR1 DB Please input a number(20-30):N=,$ STR2 DB 13,10,FIB(N)=,$ WRONGSTR DB 13,10,13,10,A number between 20 and 30 please!,13,10,13,10,$ INPUTBUFFER DB 3,?,3 DUP(?) N DW ? ;输入N值 RESULT1H DW 0 RESULT1L DW 0 RESULT2H DW 0 ;结果的高16位 RESULT2L DW 0 ;结果的低16位 C10 DW 10 OUTPUTBUFFER DB 11 DUP(0)DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX CALL INPUT CALL FIB CALL OUTPUT JMP QUIT;* INPUT PROC JMP T1WRONG:LEA DX,WRONGSTR MOV AH,9 INT 21H T1:LEA DX,STR1 MOV AH,9 INT 21H LEA DX,INPUTBUFFER MOV AH,10 INT 21H MOV AX,0 MOV CL,INPUTBUFFER+1 MOV CH,0 LEA BX,INPUTBUFFER+2 T2:MUL C10 MOV DL,BX CMP DL,0 JB WRONG CMP DL,9 JA WRONG AND DL,0FH ADD AL,DL ADC AH,0 INC BX LOOP T2 CMP AX,001EH JA WRONG CMP AX,0014H JB WRONG MOV N,AX RETINPUT ENDP;* FIB PROC CMP N,1JZ L1CMP N,2JZ L2DEC NCALL FIBMOV AX,RESULT2LMOV DX,RESULT2HMOV CX,RESULT1LADD RESULT2L,CXMOV CX,RESULT1HADC RESULT2H,CXMOV RESULT1L,AXMOV RESULT1H,DXJMP EXIT L1:MOV RESULT1L,1 MOV RESULT2L,1 JMP EXIT L2:MOV RESULT2L,1 DEC N CALL FIBEXIT:RETFIB ENDP;* OUTPUT PROCMOV AX,RESULT2LLEA SI,OUTPUTBUFFERMOV CX,5 R1:MOV DX,0 ;低位加入OUTPUTBUFFERDIV C10INC SIADD SI,DLLOOP R1;* MOV AX,RESULT2H LEA SI,OUTPUTBUFFER MOV CX,5 R2:MOV DX,0 DIV C10 INC SI PUSH CX ;高位加入OUTPUTBUFFER CMP DX,0 JE NOADD MOV CX,DXADDN:CALL ADD65536 LOOP ADDNNOADD:POP CX LOOP R2;*LEA DX,STR2MOV AH,9INT 21H LEA SI,OUTPUTBUFFER MOV BX,10 R3:CMP BYTE PTR SI+BX,0 JA PRINT
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号