计算机原理实验报告_大连理工大学
- 格式:doc
- 大小:232.00 KB
- 文档页数:11
大连理工大学实验报告实验室(房间号):420 实验台号码: 4 班级:电子1303 姓名:指导教师签字:成绩:实验三显示程序编程训练一、实验目的和要求1、熟悉汇编语言的使用。
2、掌握十进制的运算、设计显示程序运行结果的格式3、熟练掌握DOS功能调用二、实验内容编写程序,求30个同学成绩的平均分数,将结果显示在屏幕上。
显示格式要求如下:第一行显示:my name is 姓名+学号第二行显示:30个同学的成绩第二行显示:The average score is 求得的平均分数。
三、实验算法1、将ASCII码表示的数转换二进制表示,并求和、求平均数,在将平均数转换为ASCII码,在屏幕上显示。
2、显示字符串信息用DOS功能调用INT 21H,功能号为09H。
3、显示平均数结果时,用DOS功能调用INT 21H,功能号为02H。
四、实验流程图五、程序清单data segmentbuf dw 80,100,100,80,75,66,58,100,69,95dw32,80,88,92,76,52,78,50,12,60dw5,11,85,79,70,97,22,38,74,33count equ($-buf)/2data1 dw ?data2db ?data3db ?data4db ?data5db ?buf1 db ' my name is litong 201383081',0dh,0ah,'$'buf2 db 0dh,0ah,'$'buf3 db ' The average score is ','$'buf4 db ' 80,100,100,80,75,66,58,100,69,95 ',0AH,0DH,'$'buf5db' 32,80,88,92,76,52,78,50,12,60 ',0AH,0DH,'$'buf6db' 5,11,85,79,70,97,22,38,74,33 ',0AH,0DH,'$'data endsssg1 segmentdw 100 dup(?)ssg1 endscode segmentassume cs:code,ds:data,ss:ssg1main: mov ax,datamov ds,axlea dx,buf1 ;输出buf1中的字符串mov ah,09hint21hcall accum ;accumulatino from buf to data1call average ;average from data1 to data2call conver ;with data2 conver to bcd(to data3-5)lea dx,buf4 ;输出30个学生的成绩mov a h,09hint21hlea dx,buf5mov ah,09hint21hlea dx,buf6mov ah,09hint21hlea dx,buf3mov ah,09hint21hlop3: mov si,offset data3mov al,ds:[si]and al,0f0hmov cl,04hshr al,cladd al,30hmov dl,almov al,ds:[si]and al,0fhadd al,30hmov dl,almov ah,02hint21Hlop4: mov si,offset data4mov al,ds:[si]and al,0f0hmov cl,04hshr al,cladd al,30hmov dl,almov al,ds:[si]and al,0fhadd al,30hmov dl,almov ah,02hint21Hlop5: mov si,offset data5mov al,ds:[si]and al,0f0hmov cl,04hshr al,cladd al,30hmov dl,almov al,ds:[si]and al,0fhadd al,30hmov dl,almov ah,02hint21Hlea dx,buf2mov ah,09hint21hlop22: mov ax,4c00h ; to DOSint 21hconver: mov al,data2;把data2中的数据转换成BCD码mov ah,0mov bl,100div blmov data3,almov al,ahmov ah,0mov bl,10div blmov data4,almov data5,ahretaccum: mov cx,countmov ax,0lea bx,buflop:add ax,[bx];累加add bx,2loop lopmov data1,axretaverage: mov ax,data1;求平均值mov bl,countdiv blmov data2,alretcode endsend main六、实验结果与分析运行程序,得到如下结果,说明程序达到了设计要求。
目录1 实验任务 (1)2 设计方案 (1)3 设计电路 (3)4设计程序 (5)5 遇到的问题 (2)(1)程序语法方面 (2)(2)运行逻辑方面 (2)(3)软件使用方面 (2)6 何解决问题 (2)(1)程序语法方面 (2)1)寄存器使用时,数据类型不匹配: (2)2)程序越来越大的时候,程序结构混乱: (2)3)基本操作的要求: (3)4)对于中断服务程序、堆栈段以及中断STI指令的理解: (3)(2)运行逻辑方面 (3)1)电梯加速减速在一楼到二楼的特殊情况的考虑问题: (3)2)电梯运行方式的确定问题: (4)3)电梯连续运行时,各种参数的转换问题: (5)4)对于电梯实时运行显示的显示逻辑问题: (5)(3)软件使用方面 (5)1)在使用软件的时候,对于软件设置断点,以及使用断点的问题: (5)2)在软件使用中,经常出现的USB端口缺失,以及软件程序不能发送到实验板中的问题: (6)7 实验体会 (6)1 实验任务本次实验通过汇编语言编程,基本实现电梯的功能:通过在实验板的8位开关进行选择需要到的楼层,步进电机进行旋转,250个脉冲为一层,即电机旋转5.2圈为一层,每次启动,电机由速度为0加速启动,加速到最大速度时,正好达到二楼。
到达目的楼层之前,在距离楼层半层时开始减速,准确到达楼层时停止转动。
其中,当运动为一层时,电梯仅仅加速到最大速度的一半,然后减速,到达目的楼层。
在每次到达目的楼层之后,继续修改目的楼层,可以连续工作。
在工作的过程中,通过数码管实时显示当前的楼层,同时通过LED灯也实时显示楼层情况。
2 设计方案(1)电梯电机驱动部分通过地址200H选中8254定时器芯片,使用定时器0和定时器1对实验板上的1MHz脉冲信号进行分频,通过两个定时器进行分频,之后out1给中断控制器8259,触发中断,在中断中进行参数spnum的自加,在通过这个变量的数值大小与主程序speed的比较来决定主程序是否对步进电机发出相序信号,使其开始转动。
大连理工大学软件学院计算机组成原理实验一位全加器VHDL语言实现第一篇:大连理工大学软件学院计算机组成原理实验一位全加器VHDL语言实现----------------------Company:--Engineer:----Create Date:18:35:51 04/08/2013--Design Name:--Module Name:testssFile Created--Additional Comments:----------------------library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;----Uncomment the following library declaration if instantiating----any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity testss isPort(end testss;a,b,ci : inSTD_LOGIC;s,c : outSTD_LOGIC);architecture Behavioral of testss issignal x,y:std_logic;beginx <= a xor b;y <= x and ci;s <= x xor ci;c <= y or(a and b);end Behavioral;第二篇:计算机组成原理实验ALU设计module ALU(ALU_OP,AB_SW,F_LED_SW,LED);input[2:0] ALU_OP,AB_SW,F_LED_SW;output[7:0] LED;reg[7:0] LED;reg[31:0] A,B,F;reg OF,ZF;always@(*)beginendalways@(*)beginZF=0;OF=0;case(ALU_OP)3'b000: begin F=A&B;end 3'b001: begin F=A|B;end 3'b010: begin F=A^B;end 3'b011: begin F=~(A|B);end 3'b100: begin {OF,F}=A+B;OF=OF^F[31];end 3'b101: begin {OF,F}=A-B;OF=OF^F[31];end 3'b110: begin F=A3'b000: begin A=32'h0000_0000;B=32'h0000_0000;end 3'b001: begin A=32'h0000_0003;B=32'h0000_0607;end 3'b010: begin A=32'h8000_0000;B=32'h8000_0000;end 3'b011: begin A=32'h7FFF_FFFF;B=32'h7FFF_FFFF;end 3'b100: begin A=32'h8000_0000;B=32'hFFFF_FFFF;end 3'b101: begin A=32'hFFFF_FFFF;B=32'h8000_0000;end 3'b110: begin A=32'h1234_5678;B=32'h3333_2222;end 3'b111: begin A=32'h9ABC_DEF0;B=32'h1111_2222;end endcase endcase if(F==32'b0)ZF=1;endalways@(*)beginend case(F_LED_SW)3'b000: LED=F[7:0];3'b001: LED=F[15:8];3'b010: LED=F[23:16];3'b011: LED=F[31:24];default:begin LED[7]=ZF;LED[0]=OF;LED[6:1]=6'b0;end endcaseendmodule 管脚配置NET “AB_SW[0]” LOC = T10;NET “AB_SW[1]” LOC = T9;NET “AB_SW[2]” LOC = V9;NET “ALU_OP[0]” LOC = M8;NET “ALU_OP[1]” LOC = N8;NET “ALU_OP[2]” LOC = U8;NET “F_LED_SW[0]” LOC = V8;NET “F_LED_SW[1]” LOC = T5;NET “F_LED_SW[2]” LOC = B8;NET “LED[0]” LOC = U16;NET “LED[1]” LOC = V16;NET “LED[2]” LOC = U15;NET “LED[3]” LOC = V15;NET “LED[4]” LOC = M11;NET “LED[5]” LOC = N11;NET “LED[6]” LOC = R11;NET “LED[7]” LOC = T11;寄存器 module jicunqi(input Clk, input Reset, input [4:0] Reg_Addr, input Write_Reg, input [1:0] Sel, input AB, output reg [7:0] LED);reg [31:0] W_Data;wire [31:0] R_Data_A,R_Data_B,LED_Data;REGRU1(Clk,Reset,Reg_Addr,Reg_Addr,Reg_Addr,W_Data,Write_Reg,R_Data_A,R_Data_B);assign LED_Data=AB?R_Data_A : R_Data_B;always @(*)beginW_Data=32'h0000_0000;LED=8'b0000_0000;if(Write_Reg)begincase(Sel)2'b00: W_Data= 32'h1234_5678;2'b01: W_Data= 32'h89AB_CDEF;2'b10: W_Data= 32'h7FFF_FFFF;2'b11: W_Data= 32'hFFFF_FFFF;endcase end elsebegincase(Sel)2'b00: LED=LED_Data[7:0];2'b01: LED=LED_Data[15:8];2'b10: LED=LED_Data[23:16];2'b11: LED=LED_Data[31:24];endcase end end endmodule `timescale 1ns / 1ps // REG.v module REG(input Clk, input Reset, input [4:0] R_Addr_A, input[4:0] R_Addr_B, input [4:0] W_Addr, input [31:0] W_Data, input Write_Reg, output [31:0] R_Data_A, output [31:0] R_Data_B);reg [31:0] REG_Files[0:31];integer i;assign R_Data_A=REG_Files[R_Addr_A];assign R_Data_B=REG_Files[R_Addr_B];always @(posedge Clk or posedge Reset)beginif(Reset)beginfor(i=0;i<=31;i=i+1)REG_Files[i]<=32'h0000_0000;endelsebeginif(Write_Reg)beginREG_Files[W_Addr]<=W_Data;end end end endmodule管脚配置NET “Clk” LOC=“C9”;NET “Reset” LOC=“D9”;NET “Reg_Addr[4]” LOC=“T5”;NET “Reg_Addr[3]” LOC=“V8”;NET “Reg_Addr[2]” LOC=“U8”;NET “Reg_Addr[1]” LOC=“N8”;NET “Reg_Addr[0]” LOC=“M8”;NET “Write_Reg” LOC=“V9”;NET “Sel[1]” LOC=“T9”;NET “Sel[0]” LOC=“T10”;NET “AB” LOC=“A8”;NET “LED[7]” LOC=“T11”;NET “LED[6]” LOC=“R11”;NET “LED[5]” LOC=“N11”;NET “LED[4]” LOC=“M11”;NET “LED[3]” LOC=“V15”;NET “LED[2]” LOC=“U15”;NET “LED[1]” LOC=“V16”;NET “LED[0]” LOC=“U16”;第三篇:_计算机组成原理实验2计算机组成原理实验日志实验题目:进位、移位控制实验实验目的:(1)了解带进位控制的运算器的组成结构;(2)验证带进位控制的运算器的功能。
大连理工大学实验报告实验室(房间号):420 实验台号码:班级:电英1102 姓名:郑泽亮-201181512 指导教师签字:成绩:实验三汇编语言综合设计——计算学生平均成绩实验一、实验目的1. 熟悉汇编语言程序的使用。
2. 掌握十进制的运算、设计显示程序运行结果的格式。
3. 熟练掌握DOS功能调用二、实验内容编写程序,求30个分数的平均值,并以十进制值表示将结果显示在屏幕上。
显示格式的要求如下:第一行显示:Please input 30 scores: 空格间隔30个成绩第二行显示:The average scores is:求得平均成绩并输出平均成绩三、实验算法说明1.输入十进制数,通过循环使用1号功能,循环30次输入数据2.求和:30次循环求得总成绩。
3.求平均成绩:用div除以30,取商去掉余数,得到平均成绩4.将平均成绩转换成十进制数,循环除10取余数并转换成相应的ascii码,并将其逆序存储起来,从而实现了十进制转化。
5.用9号功能输出相应字符串,并用2号功能通过循环以十进制形式输出平均成绩。
四、实验流程图五、程序清单data segmentarray db 30 dup(?) ;定义可以存储输入30位的空间ascdat db 3 dup(?) ;定义用于输出的3位STRING1 DB '*201181512*','ZhengZeLiang','*2013.11.25*',0dh,0ah, 'Please input 30 scores:',0dh,0ah,'$' ;定义要显示的字符串STRING2 DB 0dh,0ah,'The average scores is:','$'data endscode segmentmain proc farassume ds:data,cs:codeSTART: MOV AX,DATAMOV DS,AXLEA DX,STRING1 ;DX装载字符串首地址MOV AH,9 ;使用9号功能显示字符串INT 21Hlea si,array ;取array首地址,并初始化bl,cxmov bl,0mov cx,30next0: mov AH,1 ;1号功能循环输入INT 21Hcmp al,20H ;与空格的ascii码比较jz next1 ;若为空格则跳转next1SUB AL,30Hmov dl,10PUSH AX ;将AX入栈,保存刚得到的axMOV AL,BLMUL dL ;BL=BL*10MOV BL,ALPOP AXADD BL,AL ;相当于实现BL=BL*10+ALJMP next0 ;直接跳转next0next1: MOV [SI],BL ;将刚得到的数BL存到[SI]INC SIXOR BX,BXLOOP next0 ;循环30次输入30个数lea si,array ;取刚存好数的地址mov cx,30mov ax,0mov dh,0next3: mov dl,[si] ;取[SI]单元赋给dladd ax,dx ;ax=ax+dxinc siloop next3 ;循环30次求和mov bl,30div bl ;除以30求平均数mov ah,0mov si,10lea bx,ascdat+2 ;取ascdat末尾地址hta: xor dx,dx ;DX清零div si ;除10or dl,30h ;余数转换asciimov [bx],dl ;将dl存到[bx]单元dec bxand ax,ax ;ax与自己相与jz hta1 ;全为0结束,跳到htaljmp hta ;直接跳转htahta1: mov cx,3lea si,ascdatLEA DX,STRING2 ;显示string2MOV AH,9INT 21Hnext4: MOV dl,[si] ;将[si]传给dlinc simov ah,02h ;用2号功能依次输出int 21hloop next4 ;循环3次以十进制形式输出平均数mov ax,4c00hint 21hmain endpcode endsend start六.实验结果:。
大连理工大学本科实验报告课程名称:计算机组成原理实验学院(系):专业:软件工程班级:学号:学生姓名:年月日大连理工大学实验报告学院(系):专业:班级:姓名:学号:实验台:实验时间:实验室:成绩:指导教师签字:实验一:微程序控制计算机实验1.实验目的:了解微程序控制计算机的工作原理及实现方法、初步学会程序的流程图画法及程序的模块化设计、调试方法。
2.实验平台:硬件平台:复旦大学FD-MCES教学平台;软件平台:自己做汇编和Unidebbuger调试软件3.实验要求:(任务)1)建立指令集文件(*.DEF 指令系统)使用的是老师提供的指令集“zzkdef.def”2)建立微程序文件(*.M19)3)编写二位乘法程序,通过调试观察汇编指令在微程序控制计算机中的实施过程,学会程序设计中的流程图,模块化设计及调试方法。
4)实验原理图:(P46)要求将CPU的各信号加方向标,延伸IR(指令寄存器)下面如何接微程序控制部分以及各部件的控制端口与微指令发出口的联结。
5)实验原理:要求通过一条具体汇编指令说明本实验计算机的工作原理及实现方法(从PC=0、MPC=0 形成开始说起,为什么程序可以连续执行?)计算机在出现MPC=0后,执行取指令,接着计算机开始执行第一条指令,先译码然后执行其动作,紧接着取第二条指令,然后重复上面的动作,指令地址均存放在内存中。
如SUB A,R0指令,其动作是在将累加器中数据A减去寄存器R0中的数据后,将结果存放在累加器A中.每一条指令的最后一组命令都是取下一条指令,因此CPU每执行完一条指令都会取下一条指令,然后执行。
从而使CPU如此循环往复地执行所要求的指令。
6)实验操作步骤流程图。
该流程图应包括以下几个部分:(可以设为不是第一次使用,但要注意操作过程的实际情况而非理想情况)7)二位乘法程序流程图:要求分成3个部分(1)数据输入、运算式打印部分(2)乘积运算部分(3)数据位的分离与打印结果部分代码:(注:我实现的是第二部分,乘积运算)L30:MOV R0,#1HMOV R1,#0HMOV R2,#0HMOV R3,#0HL31:MOV A,R4SUB A,R0MOV R4,AJC L32MOV A,R1ADD A,R6MOV R1,AMOV A,R2ADD A,R7MOV R2,AJMP L31L32:SUB A,R0MOV R5,AJC L33MOV A,R2ADD A,R6MOV R2,AMOV A,R3ADD A,R7MOV R3,AJMP L32L33:MOV R4,#0HMOV R5,#0HMOV R6,#0HMOV R7,#0AH L34:MOV A,R1 SUB A,R7 MOV R1,AJC L35 MOV A,R2MOV R2,A JMP L34L35:MOV A,R1ADD A,R7MOV R1,A L36:MOV A,R2 SUB A,R7 MOV R2,AJC L37 MOV A,R3 ADD A,R0 MOV R3,A JMP L36L37:MOV A,R2ADD A,R7MOV R2,A L38:MOV A,R3MOV R3,AJC L39 MOV A,R4 ADD A,R0 MOV R4,A JMP L38L39:MOV A,R3 ADD A,R7MOV R3,A3.体会、意见、建议实验体会,除写个人实验课程理解之外,还应对实验课时数实验仪器设备、实验讲义、实验内容安排、时间分配及教师授课方式提出意见和建议。
大连理工大学本科实验报告课程名称:学院(系):专业:班级:学号:学生姓名:年月日实验项目列表大连理工大学实验预习报告学院(系):专业:班级:姓名:学号:组: ___实验时间:实验室:实验台:指导教师签字:成绩:一、部件实验报告1.实验名称:部件实验——总线数据传输实验2.实验目的:了解总线在计算机中的作用及数据传输原理3.实验要求:把内存作为中间介质,完成寄存器间的数据传输4.实验原理图:(P32)5.实验操作步骤(流程图)开始将开关s0-s7置11110000上拨S13、S11s0-s7置10101010上拨S13、S10,下拨S10将开关全部复位上拨S12、S16、S15S11、S10,下拨S10将开关全部复位实验体会、意见、建议体会:通过这次实验,我对总线的作用和数据的传输原理有了初步的了解。
在实验过程中,开关的上拨顺序(有些开关必须先于某些上拨才能正常进行)和复位顺序很重要,一般遵照先拨后复位的顺序进行。
另外S10比较特殊是下降沿有效,所以需拨两次。
意见及建议:关于部件的实验过于简单和单调,建议增加关于部件的实验内容。
大连理工大学实验预习报告学院(系):专业:班级:姓名:学号:组: ___实验时间:实验室:实验台:指导教师签字:成绩:二、8位微程序控制计算机预习报告1 一位乘法程序的 *. LST 文件(要在重要地方加注释行,尽量使原程序易读)1 0000 ORG 02 0000 STRT:3 0000 3C00 MOV R4,#04 0002 3B00 MOV R3,#05 0004 3D0A MOV R5,#106 0006 600000 JKB STRT7 0009 408001 LDA 8001H8 000C 0F MOV R7,A9 000D L1:10 000D 60000D JKB L111 0010 408001 LDA 8001H12 0013 0E MOV R6,A13 0014 3001 MOV A,#414 0016 488002 STA 8002H15 0019 L2:16 0019 680019 JPB L217 001C 300A MOV A,#0AH18 001E 488002 STA 8002H19 0021 L3:21 0024 3010 MOV A,#10H22 0026 27 ADD A,R723 0027 488002 STA 8002H24 002A L4:25 002A 68002A JPB L426 002D 3009 MOV A,#927 002F 488002 STA 8002H28 0032 L5:29 0032 680032 JPB L530 0035 300A MOV A,#0AH31 0037 488002 STA 8002H32 003A L6:33 003A 68003A JPB L634 003D 3010 MOV A,#10H35 003F 26 ADD A,R636 0040 488002 STA 8002H37 0043 L7:38 0043 680043 JPB L739 0046 300A MOV A,#0AH40 0048 488002 STA 8002H41 004B L8:43 004E 300A MOV A,#0AH44 0050 488002 STA 8002H45 0053 L9:46 0053 680053 JPB L947 0056 06 MOV A,R6 ;把R6当作计数器48 0057 3A01 MOV R2,#149 0059 3B00 MOV R3,#00H50 005B L10: ;循环加被乘数,并把结果存在R3中51 005B 2A SUB A,R252 005C 500067 JC L1153 005F 0E MOV R6,A54 0060 03 MOV A,R355 0061 27 ADD A,R756 0062 0B MOV R3,A57 0063 06 MOV A,R658 0064 58005B JMP L1059 0067 L11:60 0067 03 MOV A,R3 ;分离R361 0068 2D SUB A,R562 0069 500073 JC L1264 006D 04 MOV A,R465 006E 22 ADD A,R2 ;计算十位66 006F 0C MOV R4,A ;把十位存入R4中67 0070 580067 JMP L1168 0073 L12:69 0073 04 MOV A,R470 0074 2A SUB A,R2 ;判断十位R4是否为071 0075 50008B JC L1372 0078 03 MOV A,R373 0079 C1:74 0079 680079 JPB C175 007C 488002 STA 8002H76 007F C2:77 007F 68007F JPB C278 0082 3010 MOV A,#10H79 0084 24 ADD A,R480 0085 488002 STA 8002H81 0088 580094 JMP OVER82 008B L13:83 008B 68008B JPB L1384 008E 3010 MOV A,#10H86 0091 488002 STA 8002H87 0094 OVER:88 0094 580000 JMP STRT 2大连理工大学实验报告学院(系):专业:班级:姓名:学号:组: ___实验时间:实验室:实验台:指导教师签字:成绩:三、8位微程序控制计算机实验报告1.实验名称:8位微程序控制计算机实验2.实验目的:了解微程序控制计算机的工作原理及实现方法、初步学会程序的流程图画法及程序的模块化设计、调试方法。
大连理工大学实验报告实验室(房间号):420 实验台号码:班级:电通1402 姓名:糜智华指导教师签字:成绩:实验一汇编语言上机操作&动态调试程序DEBUG的使用&运算类程序设计一、实验目的和要求1. 熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序。
2. 熟练掌握宏汇编程序MASM或TASM的使用。
3. 熟练掌握连接程序LINK或TLINK的使用。
4. 了解DEBUG或TD的特点和使用方法。
5. 学习使用DEBUG程序的各种命令。
6. 了解计算机取指令、执行指令的工作过程。
7. 利用DEBUG学习8086/8088CPU指令系统。
8. 掌握用DEBUG调试用户程序的方法。
9. 掌握运算类指令对各状态标识位的影响及其测试方法。
10.掌握使用运算类指令编程及调试方法。
二、实验算法数据段:定义变量buf为平方数0100h,定义变量result为开方数。
堆栈段:不妨取100个单元代码段: start:取数据段段地址并且将bx置1,cx置0。
circle:buf=buf-bx(即奇数bx从1开始)减完后如果buf大于等于零,则bx=bx+2,cx=cx+1,并且重复循环;如果buf小于零则调到over。
over:将cx赋给result,并退出。
三、实验流程图四、程序清单data segment ;数据段buf dw 0100h ;假设变量为0100hresult dw 0000hdata endsssg segment stack ;堆栈段dw 100 dup(0)ssg endscode segment ;代码段assume cs:code,ss:ssg,ds:datastart: mov ax,data ;取数据段段地址mov ds,axmov bx,1 ;bx置1,cx置0mov cx,0circle: sub buf,bx ;buf与bx相减cmp buf,0 ;减完后的buf与零作比较jl over ;(有符号数)小于则跳转add bx,2 ;若大于等于则bx+2,cx+1inc cxjmp circle ;重复循环over: mov result,cx ;将cx赋给resultint 20h ;退出code endsend start五、实验结果与分析(是否达到设计要求、出现的主要问题及解决方法)编译链接结果如图1.1图1.1TD调试运行窗口如图1.2图1.2结果:cx寄存器为0010h,并且存储器里可以看到dw结构的result是第3、4个单元里的内容,即result为0010h。
计算机原理实验室实验报告1. 引言计算机原理实验室是计算机科学与工程领域中一个重要的实践环节,旨在帮助学生巩固和拓展计算机原理相关知识,培养实践能力和解决问题的能力。
本实验报告将详细介绍我们在计算机原理实验室中所进行的实验内容、实验目的、实验过程、实验结果和实验总结。
2. 实验目的本次实验的主要目的是通过实际操作,加深对计算机原理的理解,掌握计算机硬件的基本组成和工作原理,熟悉计算机的运行过程,学会使用一些计算机原理实验仪器和软件。
3. 实验内容本次实验的内容主要包括以下几个方面:3.1 计算机硬件组装实验在本实验中,我们需要根据给定的电路图和硬件元件,组装一台完整的计算机。
这个过程中需要注意硬件元件的正确连接和固定,确保计算机能够正常运行。
3.2 计算机启动与关机实验在本实验中,我们需要学习计算机的启动与关机过程。
通过按照正确的步骤操作,我们可以使计算机正常启动和关机,并了解其中的原理和流程。
3.3 计算机性能测试实验在本实验中,我们需要使用一些性能测试软件,对计算机的性能进行测试。
通过测试结果,我们可以了解计算机的处理能力、存储能力和图形处理能力等方面的表现。
3.4 计算机故障排除实验在本实验中,我们需要学习一些常见的计算机故障排除方法。
通过分析故障原因,我们可以找到解决问题的方法,并修复计算机故障。
4. 实验过程4.1 计算机硬件组装实验过程首先,我们需要准备好所需的硬件元件和工具。
然后,根据给定的电路图,按照正确的连接顺序,逐步组装计算机的主板、CPU、内存、硬盘、显卡等硬件元件。
在组装过程中,需要注意连接线的插入方向和插孔的对应关系,确保连接的牢固和正确。
最后,进行电源的连接和固定,检查硬件组装是否正确。
4.2 计算机启动与关机实验过程在计算机硬件组装完成后,我们可以按照正确的步骤启动计算机。
首先,将电源线插入电源插座,并将电源线与计算机主机连接。
然后,按下电源按钮,等待计算机启动。
在启动过程中,我们可以观察计算机屏幕上的提示信息,确认计算机是否正常启动。
大连理工大学实验报告计算机系统结构实验实验一MIPS指令系统和MIPS体系结构学院(系):电子信息与电气工程学部专业:计算机科学与技术学生姓名:班级:学号:大连理工大学Dalian University of Technology实验一MIPS指令系统和MIPS体系结构一、实验目的和要求1. 了解熟悉MIPSsim模拟器。
2. 熟悉MIPS指令系统及其特点。
3. 熟悉MIPS体系结构。
二、实验步骤1、启动MIPSsim。
2、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。
3、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。
4、选择“文件”->“载入程序”选项,加载样例程序alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000000)。
5、查看“寄存器”窗口PC寄存器的值:[PC]= 0x00000000 。
6、执行load和store指令,步骤如下:(1)单步执行一条指令(F7)。
(2)下一条指令地址为= 0x00000004 ,是一条有(有,无)符号载入字节(字节,半字,字)指令。
(3)单步执行一条指令(F7)。
(4)查看R1的值,[R1]=0X FFFFFFFFFFFFFF80 。
(5)下一条指令地址为=0X00000008 ,是一条有(有,无)符号载入字(字节,半字,字)指令。
(6)单步执行1条指令。
(7)查看R1的值,[R1]=0X0000000000000080 。
(8)下一条指令地址为=0X0000000C ,是一条无(有,无)符号载入字(字节,半字,字)指令。
(9)单步执行1条指令。
(10)查看R1的值,[R1]= 0X0000000000000080 。
(11)单步执行1条指令。
(12)下一条指令地址为0X00000014 ,是一条保存字(字节,半字,字)指令。
(13)单步执行一条指令。
(14)查看内存BUFFER处字的值,值为0x00000080 。
《计算机原理实验报告》----- 接口部分实验(五)名称:ADC8090实验——软件查询法一、实验目的:了解ADC8090模/数转换的基本原理,外围电路结构以及编程方法。
二、实验要求:采用查询法编程,通过实验台左下角电位器RW1输出0—5V直流电压送入ADC0809通道0,利用LED 显示模块以十六进制的方式显示ADC数据。
三、编程算法与说明:采用8090模/数转换功能实现模拟数字的转换,转换之后将结果从总线传送给8255,并且在8255输出,在LED区显示。
四、实验中相关模块的连接逻辑图(实验电路图):五、程序流程图:六、程序清单:.model small.386AD_IO EQU 200H IO_8255 EQU 210Hcode segmentassume cs:code start:;mov ax,data;mov ds,axmov dx,IO_8255add dx,03hmov al,10000000bout dx,alrpt:mov dx,AD_IOout dx,almov dx,AD_IOadd dx,2L1:in al,dxtest al,01hjz L1mov dx,AD_IOinc dxin al,dxcall dispcall delayjmp rptdisp procmov dx,IO_8255out dx,alRETdisp endpdelay procpush cxmov cx,50hx1:loop x1pop cxretdelay endpcode endsend start七、实验结果:旋转电位器RW1得到不同的模拟输入量经过转换之后通过8255A的A端口输出在LED区域显示,能够实现8位的模拟转换数字量。
学生签字:日期:。
大连理工大学本科实验报告课程名称:计算机原理实验学院(系):专业:班级:学号:学生姓名:20 年月日实验项目列表注意:独立完成预习报告和实验操作。
专业:班级:学号:学生签字:联系电话:《计算机原理实验》报告填写要求根据《大连理工大学本科实验报告规范(试行)》提出的各项要求,现规定《计算机原理实验》报告填写要求如下:一、每次实验前必须完成预习报告。
注意:预习报告中的回答问题必须手写,且由学生本人签名。
第一次实验时,课前将预习报告交给实验老师。
每次实验时,课前提交预习报告,没有完成预习报告者不得进行实验。
二、每一个实验项目均须撰写一份实验报告,A4纸打印出来,最后按顺序装订上交。
三、实验报告内容:1、实验目的和要求:写明实验的目的和任务要求;2、实验原理和内容:与实验内容相关的算法描述、程序的结构类型,与实验相关的接口模块功能描述。
3、算法流程:使用流程图对算法进行描述。
流程图应当逻辑正确、简单清晰。
流程图可以采用打印或手工绘制。
4、使用protel等工具绘制实验系统电路图(也可手工绘制)。
系统电路图应正确、工整。
5、程序清单:程序清单一律采用打印的方式,源程序文件的格式要整齐、规范(语句的标号、指令及注释应在不同列中)。
在程序的关键语句上加注释。
相关子程序要在注视中进行功能说明;6、实验结果与分析:明确地写出最后结果(是否实现设计要求等),对实验中所遇到的问题以及解决的方法加以描述;7、实验体会、建议:通过实验所体会的收获。
针对实验内容、教学方法、考核方法等提出需要解决的问题,提出改进建议;8、全部文字叙述内容要求简明扼要,思路清楚、用词规范;9、主要仪器设备:记录主要仪器的名称、型号(包括实验运行软件名称)等10、实验时间:报告中应标明实验的日期(年、月、日;星期;组号)。
四、要求实验报告字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。
五、对抄袭“实验预习报告”和“实验报告”或编造原始数据的行为,一经发现以零分处理,并按《大连理工大学学生违记处分规定》第二十六条给予处分。
大连理工大学本科设计报告(计算机原理接口实验综合设计)题目:步进电机控制系统设计课程名称:计算机原理实验学院(系):电信学院专业:电子信息工程班级:学号:学生姓名:成绩:2015 年月日题目:步进电机控制系统设计1 设计要求利用实验台上的电位器,实现步进电机的转速、转向控制。
具体要求如下:1.利用D8255A的PA0-PA3做输出,输出步进电机的相序、驱动步进电机工作(使用四个LED监视步进电机的相序信号),相序之间的时间决定着步进电机的转速,而间隔时间由延时程序中的CX寄存器的值决定。
2.利用电位器做输入,将电位器与ADC0809的IN0口相连,通过ADC0809将读取到的电压值转化为8位二进制值,根据这个8位二进制值的不同来实现对步进电机的转速、转向控制3.利用8254做秒脉冲发生器,产生约10Hz方波信号。
其中CNT0做分频器:将1MHz信号分频为100Hz;CNT1做秒脉冲输出(10Hz);4.利用386模块的主8259的MIR5做中断请求输入,将CNT1的OUT1秒信号方波作为中断请求信号,引发中断服务ISR;5.在中断服务程序中实现对步进电机的转速、转向实时控制。
方法如下:在ISR中,读取ADC0809转换得到的8位二进制值,并根据此值做如下处理:1)当转换值为00h~7fh时,逆时针旋转,00h时转速最大;2)当转换值为81h~0ffh时,顺时针旋转,0ffh时转速最大;3)当转换值为80h时,停止旋转。
2 设计分析及系统方案设计整个设计是在使用8255输出相序控制步进电机转动的基础上,利用中断实时调整输出相序的时间间隔以及顺序,起到控制步进电机转速和转向的效果。
程序的结构类型属于循环结构。
基础程序部分:该部分是利用8255 A口循环输出8个相序,在循环体中条用子程序delay控制时间间隔,延迟量由CX值决定。
中断程序部分:先安装中断向量,由于386EXCPU的8259初始化的程序已经固化在系统的ROM BIOS中,所以只要把中断类型码35H对应的内存位置上装上中断服务程序的段地址和偏移地址。
大连理工大学实验报告学院(系):电信专业:计算机科学与技术班级:电计1203姓名:刘阳学号:*********指导教师签字:成绩:实验名称脱机运算器实验一、实验操作步骤1.将教学机左下方的5 个拨动开关置为1XX00(单步、16 位、脱机);先按一下“RESET”按键,再按一下“START”按键,进行初始化。
2.接下来,按下表所列的操作在机器上进行运算器脱机实验,将结果填入表中。
通过两个12 位的红色微型开关向运算器提供控制信号,通过16位数据开关向运算器提供数据,通过指示灯观察运算结果及状态标志。
二、实验数据记录或实验结果截图三、实验结果与分析①.R0←1234:通过按钮开关给寄存器R0置数,故I5~I3选择000(R+S),而I2~I0选择111,令R为按钮表示的值1234,S为0。
输出结果为赋值结果1234H。
②.R9←789F:同①,通过按钮开关给寄存器R9置数,故I5~I3选择000(R+S),而I2~I0选择111,令R为按钮表示的值789F,S为0。
输出结果为赋值结果789FH。
③.R0←(¬R0):对R0取非,即对R0与FFFF取异或,故I5~I3选择110(R ⊕S),I2~I0取101,此时按钮开关应全置1。
④.R9←(R9⊕R0):对R9与R0异或,故I5~I3同上选择110(R⊕S),I2~I0选择001,通过将A、B分别置为0和9令两个操作数分别为R0和R9。
⑤.R0←(R0+1):令R0与常数相加,故I5~I3选择000(R+S),I2~I0选择101,令R为按钮表示的值0001,S为A(置为R0地址)。
⑥.R10←R0:将R0的值赋给R10,即R10=R0+0,I5~I3同上选择000(R+S),I2~I0选择110,将R置0、S置0即可。
⑦.R10←R0/2:将R0/2赋给R10,故I8~I6应选择101,令最后赋给B的值为输出的二分之一,I5~I3选择000(R+S),I2~I0选择011,按钮开关置0,即(R0+0)。
大连理工大学本科设计报告(计算机原理接口实验综合设计)题目:步进电机控制系统设计课程名称:计算机原理实验学院(系):电子信息与电气工程学部专业:班级:学号:学生姓名:成绩:2015 年12 月26 日题目:步进电机控制系统设计1 设计要求利用实验台上的开关(K7-K0),实现步进电机的转速、转向控制。
具体要求如下:1.利用D8255A的PA0-PA3做输出,输出步进电机的相序、驱动步进电机工作(使用四个LED监视步进电机的相序信号),相序之间的时间决定着步进电机的转速,而间隔时间有时由CX寄存器的初值决定(参见实验教材3.1.3章节)。
2.利用ADC0809将输入滑动变阻器的模拟信号转换成数字信号来控制步进电机的转速,当滑动变阻器在两端时转速最快,向中间转动时,步进电机的转速会逐渐减小,当转过中间之后,步进电机转向;3.利用8253做秒脉冲发生器,产生约0.5秒的周期性方波信号。
其中CNT0做分频器:将1MHZ信号分频为100HZ;CNT1做秒脉冲输出(2HZ);4.利用386模块的主8259的MIR5做中断请求输入,将CNT1的OUT1秒信号方波作为中断请求信号,引发中断服务ISR;5.在中断服务程序中实现对步进电机的转速、转向实时控制。
实现方法如下:在ISR中,对ADC0809的输出进行一次输入操作,并根据输入的数据:判断ADC0809输出的值,根据相应的值来判断步进电机的方向和转速;2 设计分析及系统方案设计1.首先参照实验教材的相关内容,将步进电机运转起来。
在原有的参考程序中使用的是“输出立即数”方式来输出步进电机的相序,建议进行修改,以方便电机的转向控制。
使用“寄存器间接寻址”的方式输出相序信号:将步进电机的相序数据定义在数据段当中,使用SI或DI查表(间接寻址)获取相序数据。
其中查表顺序决定着电机转动方向。
2.对8253进行编程,使OUT1输出秒脉冲方波信号,为了便于调试,建议使用逻辑笔监测OUT1的输出状态是否正常;3.编制与中断相关的程序。
大工20春《计算机科学实验》实验报告答案实验一:XXX实验实验目的:探究XXX的原理和应用。
实验步骤:1. 首先,准备实验所需的材料和工具。
2. 接着,按照实验指导书的要求进行操作。
3. 测试实验结果。
实验结果分析:根据实验结果,可以得出以下结论:- 对于XXX的应用,具有XXX特点。
- 实验结果与理论预期相符。
实验二:XXX实验实验目的:研究XXX的性能和优化方法。
实验步骤:1. 首先,收集实验所需的数据和样本。
2. 接着,设计实验方案并进行实验。
3. 分析实验数据。
实验结果分析:根据实验数据分析,得到以下结论:- XXX的性能受到XXX因素的影响。
- 通过优化方法,可以提高XXX的性能。
实验三:XXX实验实验目的:实现XXX功能并验证其正确性。
实验步骤:1. 首先,了解XXX功能的实现原理。
2. 接着,编写代码实现XXX功能。
3. 运行程序并测试功能的正确性。
实验结果分析:根据实验结果分析,可以得出以下结论:- 实现的XXX功能符合预期要求。
- 通过实验验证,XXX功能的正确性得到确认。
结论大工20春《计算机科学实验》的实验报告详细介绍了三个实验的目的、步骤和结果分析。
通过这些实验,深入了解了XXX的原理、应用、性能和优化方法。
实验结果验证了理论的正确性,为进一步研究和应用XXX提供了基础。
这些实验也加深了对计算机科学领域相关知识的理解和掌握。
> 注意:以上内容仅为示例,具体实验报告内容需要根据实验的具体要求和实际情况进行填写。
大连理工大学本科实验报告题目:8位A\D转换实验(查询方式)步进电机实验课程名称:计算机原理课程设计学院(系):电子信息与电气工程专业:电气工程及其自动化班级:学生姓名:学号:成绩:2010 年12 月13 日1.实验目的1.掌握模/数信号转换的基本原理,掌握ADC0809芯片的应用方法。
2.掌握步进电机的控制方法。
2.实验内容从ADC0809通道0输入+5V可变电压,使用查询方法读取转换数据并在数码管上显示两位16进制数。
实验程序:.model small.386AD_IO EQU 200HLED_IO EQU 210HDATA SEGMENTLEDCODE DB 3FH,06H,5H,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71H DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXRPT:MOV DX,AD_IOOUT DX,ALMOV DX,AD_IOADD DX,2L1:IN AL,DXTEST AL,01HJZ L1MOV DX,AD_IOINC DXIN AL,DXCALL DISPJMP RPTDISP PROCMOV SI,OFFSET LEDCODEMOV BX,SIMOV CH,ALMOV CL,4ROR AL,CLAND AL,0FHMOV AH,0ADD,BX,AXMOV AL,[BX]MOV DX,LED_IOOUT DX,ALINC DXNOPOUT DX,ALCALL DELAYMOV AL,CHAND AL,0FHMOV AH,0ADD SI,AXMOV AL,[SI]MOV DX,LED_IOOUT DX,ALMOV AL,01HINC DXOUT DX,ALCALL DELAYRETDISP ENDPDELAY PROCPUSH CXMOV CX,50HX1:LOOP X1POP CXRETDELAY ENDPCODE ENDSEND START利用8255A口控制步进电机的运转。
大连理工大学本科设计报告(计算机原理接口实验综合设计)题目:基于“准PWM技术”的直流电机调速系统设计课程名称:计算机原理实验学院(系):信息与通信学院成绩:LED 监视题目:基于“准PWM 技术”的直流电机调速系统设计1 设计要求利用实验台上的开关(K7-K0),实现3V 直流电机的转速控制。
利用8253产生“准PWM ”(占空比50%~0%)波形,不同的占空比影响着直流电机的转速。
通过秒中断服务程序读取K7-0的数据、修改PWM 的占空比,实现直流电机的转速控制。
具体要求:1) 以8253为核心,通过8253的OUT1输出方式2的方波经反相器后控制电机;a) 设置8253的CNT0为 方式三,将输入的1MHZ 信号进行5000分频,在OUT0上得到200HZ 对称方波,送CLK1使用;b) 设置8253的CNT1为 方式二,利用8253的CNT1的OUT1输出的不对称方波(参见图2.1),经一个反相器输出后,与直流电机连接、控制电机的转速; 2) 利用D8255A 的PA7-PA0做输入,与K7-K0连接。
利用开关数据控制电机的转速。
根据PA 的数据设置CNT1的初值在10~2之间变化(共9档速度)、实现电机转速的控制; 3) 利用8253的CNT2做秒脉冲发生器(CLK2与OUT0连接以获取200HZ 脉冲),(N=400)在OUT2上输出0.5HZ 的周期性方波,并由此方波与主8259的MIR5连接,引发中断服务ISR 。
在ISR 中对D8255A 的PA 口进行输入,并根据此数据修改CNT1的初值(PWM 的占空比)。
4) 加分题:考虑如何使用一个电位器(替代开关)实现对电机转速的控制,并通过数码管显示相应档速值。
2 设计分析及系统方案设计1)设计方案分析:根据设计要求,可以8253为中心模块,利用AD转换器,8255实现拨码开关和电位器进行调速,程序编写实现将以中断为主。
并利用8255,数码管实现显示各速度档位功能(在开关控制和电位器控制下均可显示档位)。
具体模块分析如下。
(1)8253部分:根据设计要求,8253的三个通道分别做如下初始化,其中以CNT0为中心,将输入的时钟源1MHZ进行分频,以供给其他通道使用故其工作在方波方式(方式3)。
CNT1作为驱动直流电机的脉冲源,工作在方式2(矩形波输出),而CNT2为中断的时钟源,在CNT0的输出时钟基础上再次分频实现每0.5S进入一次中断。
(2)8259部分:中断管理,初始化MIR5,并设置35H号中断向量。
(3)8255部分:初始化并实现PA口的开关数据输入程序,PB口的数码管数据输出。
(4)AD转换部分:转换电位器接入的模拟电压值,得到相应数字量。
(5)数码管显示部分:通过8255和预先写入存储空间的字型代码驱动数码管显示。
2)系统方案设计:(1)主程序:主要完成上述相应可编程芯片的初始化,包括8255,8253,8259的初始化,同时进行中断向量的设置,并开启AD转换器,然后等待相应中断的到来。
(2)中断服务程序:利用8255的PA口输入的数据控制电机转速的操作,PB口作输出驱动数码管显示。
拨码开关分为8个档位,8个开关中以高有效为原则,即当K1和K7同时为高时,则为8档(最快档),同时当前档速可通过数码管显示。
当CNT1的初值N=2时,占空比最大(为50%),随着N值的增加,高电平的占空比逐渐下降,电机转速也逐渐变慢。
当拨码开关全部为0时,切换到电位器调节:完成AD转换值的采集,将采集得到的数据进行处理,转换成相应的档速值,并通过8255送给数码管进行显示,得到的N值送给驱动脉冲源通道CNT1,最后退出等待下一次中断的到来。
3 系统电路图4 外围接口模块硬件电路功能描述图2.3 8255引脚图图2.4 8253引脚图图2.5 ADC0809引脚图8255作为主机与外设的连接芯片,利用D8255A的PA7-PA0做输入,与K7-K0连接。
利用PB 口与数码管的阳极相连,驱动数码管。
ADC0809与电位器相连,将电位器输入的模拟量转化为8位数字量,开关数据或电位器控制电机的转速。
8253是NMOS工艺制成的可编程计数器,利用8253cnt1输出“准PWM”波形,cnt0用于基础分频,输出200HZ方波,cnt2输出2HZ方波触发中断。
相关器件引脚原理连接如系统电路原理图,其功能均在前面内容已作介绍。
5 主程序中主要变量说明6 系统软件中各个子程序的功能描述7 主程序程序流程图8 程序清单data segment paraio8253_0 equ 200hio8253_1 equ 201hio8253_2 equ 202hio8253_k equ 203hio_8255 EQU 210hAD_IO EQU 220Hbuffer DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH speed DB 10data endsssg segment stackDw 256 DUP(0)ssg endscode segmentassume cs:code,ds:data,ss:ssgmain proc farcliMOV AX,DA TAMOV DS,AX;8255初始化,a口输入,b口输出,方式0mov dx,IO_8255+3mov al,10010000bout dx,al;8253初始化,cnt0mov dx,io8253_kmov al,36hout dx,almov ax,5000mov dx,io8253_0out dx,alout dx,al;8253初始化,cnt1,产生准PWM波mov dx,io8253_kmov al,74hout dx,almov al,speed ;speed 初值设为10mov dx,io8253_1out dx,almov al,0out dx,al;8253初始化,cnt2,在cnt0的基础上再次分频设置中断mov dx,io8253_kmov al,0b6hout dx,almov ax,100mov dx,io8253_2out dx,almov al,ahout dx,al;设置386EX主8259中断屏蔽字in al,21hand al,11011111bout 21h,al;设置中断向量表push dsmov ax,0mov ds,axlea ax,cs:int_procmov si,35hadd si,siadd si,simov ds:[si],axpush cspop axmov ds:[si+2],axstil2: nop ;等待中断jmp l2mov ax,4c00hint 21hmain endpINT_PROC proc farPUSH AXPUSH CXPUSH DXmov si,0mov dx,IO_8255in al,dxMOV AH,10;设置初始速度test al,80hjnz next1test al,40hjnz next2test al,20hjnz next3test al,10hjnz next4test al,08hjnz next5test al,04hjnz next6test al,02hjnz next7test al,01hjnz next8;若开关都为0,则切换到电位器控制MOV DX,AD_IO ;启动AD转换OUT DX,ALadd dx,2L1: in al,dxtest al,01hjz L1MOV DX,AD_IOINC DXIN AL,DX ;读取LEA BX,bufferMOV CX,8LOOP1: TEST AL,01HJZ NEXT11DEC AHINC BXNEXT11: SHR AL,1LOOP LOOP1;循环判断开ADC值有几个有效,决定输出档速,8个有效,档速最高为2,;0个有效,最低档速为10MOV DX,io_8255+1 ; 数码管显示MOV AL,[BX]OUT DX,ALjmp next9next1: dec ah ;开关8档,最快档inc si ;控制开关模式下数码管的数据next2: dec ahinc sinext3: dec ahinc sinext4: dec ahinc sinext5: dec ahinc sinext6: dec ahinc sinext7: dec ahnext8: dec ahinc silea bx,bufferadd bx,siMOV DX,io_8255+1 ; 数码管显示MOV AL,[bx]OUT DX,ALnext9: mov al,ah ; 送响应档速值给CNT1mov dx,io8253_1out dx,almov al,0out dx,alMOV AL,20H ;发送EOI命令OUT 20H,ALPOP DXPOP CXPOP AXSTIIRETINT_PROC ENDPCODE ENDSEND MAIN9 系统调试运行结果说明、分析所出现得问题1)硬件环境:PC机,386EX实验系统,其中包括硬件模块:8255,8253,8259,ADC0809,基于30386处理器的最小系统,时钟源,电源等。
2)软件环境:TPC_386EX集成开发环境3)设计语言:汇编语言4)出现的问题:1.在编程的过程中,开始开关档不能正常工作,上电后电机会自动跳到最快档。
2.在驱动数码管时,开始没有实现开关档显示档位数据,开关档时数码管显示的是原来电位器的档位,与当前电机转速不符。
5)解决方法:1.开始使用调试工具设置断点检查程序运行情况,发现断点只要设置在开中断之后,程序就会运该JNZ,却用了JZ。
2.经过思考,在不同的档位速度调整的同时,又设置了一寄存器SI,用来同步保存当前档位的值,使开关控制时也可以同步显示当前档位,改进了程序。
6)结果说明:通过开关k7-k0,改变直流,电动机的速度,当开关档同时都为低电平时,电位器控制有效,手动调节实验箱中的电位器,可以看到直流电机实现不同速度转动。
两种控制方式都可以同步看到数码管显示当前档位。
10 结论及设计体会在编程过程中,按照设计要求,结合计算机原理课所学知识,完成了程序设计,加强了对理论课程的理解。
学会了利用调试工具、观察软件的寄存器内容、硬件电路中的逻辑笔,来判断每个芯片设计的是否成功。
通过实际的实验设计,让我渐渐喜欢上了汇编语言,感受到了设计简单电路系统的乐趣。
总之本次计算机原理实验,让我收获颇丰。
最后感谢老师的耐心指导。
参考文献秦晓梅,陈育斌. 计算机原理综合实教程(试用版).电子电工实验中心计算机技术实验室。
- 10 -。