微机实验报告二
org2000h
numdb12h,95h,0f1h,0c2h,82h,2h,10h,34h
countequ$-num
org3000h
res1db3dup(?);store unsigned
org4000h
res2db3dup(?);store signed
dataends
STACKSEGMENTPARA STACK'STACK'
countequ$-str1
org3000h
str2dbcountdup(?)
dataends
STACKSEGMENTPARA STACK'STACK'
DB100DUP(?)
STACKENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
STARTPROC FAR
PUSHDS
MOVAX,0
微机原理实验报告
实验二
班级:2012级信息工程(7)班
姓名:
学号:
序号:
评阅分数:
微机实验二
一、实验目的
1、熟悉80X86基本指令集。
2、掌握汇编语言源程序的编写。
3、掌握结构化程序设计三大结构的程序设计。
4、掌握汇编程序的动态调试。
二、开发环境
未来汇编、debug
三、实验题目
1、编程将以‘$’结束的字符串中的小写字母改为大写字母。
DB100DUP(?)
STACKENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
STARTPROC FAR
PUቤተ መጻሕፍቲ ባይዱHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
LEASI,num
LEADI,res1
MOVCX,count-1
MOVAL,[SI]
;求无符号数最大值
INCDI
b2:
INCSI
CMPAL,[SI]
JL next4
MOVAL,[SI]
next4:
LOOP b2
MOV[DI],AL
;求有符号数的平均值
LEASI,num
XORDI,DI
XORBX,BX
MOVCX,8
mean2:
MOVAL,[SI]
CBW;先扩成16位
CWD;再将符号位扩充至dx
ADDBX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
LEASI,str1;取str1首地址
LEADI,str2;取str2首地址
MOVCX,count
AA:
MOVAL,[SI]
CMPAL,61H;判断是否为小写字母
JB next
CMPAL,7AH
JA next
SUBAL,20H;将小写字母转换为大写
MOV[DI], AL;将非小写字母放入str2中
2.在求平均值是未注意到要除以count次,不是count-1
3.在求有符号数的平均值时在最开始就对res2取址:LEADI,RES2,忽略了在后面一步需要用到ADCDI,DX,导致最后一步MOV[DI][2],AL时出错,应该把LEADI,RES2放在ADCDI,DX之后才不会对所存的数产生影响
4.每一次大段操作完记得INC SI,使储存向下一个地址进行。
ADCDI,DX;符号位无进位相加,只保留0或1
INCSI
LOOPmean2
MOVAX,BX
MOVDX,DI
MOVCX,8
IDIVCX;有符号相除
LEADI,RES2
MOV[DI][2],AL
RET
STARTENDP
CODEENDS
ENDSTART
结果:
1.无符号数
2.有符号数
出现的问题:
1.未注意到数据比较时比较的次数为COUNT-1次。第一次用COUNT次进行循环时,会使最小值为0.
;有符号数最大值
LEASI,num
LEADI,res2
MOVCX,count-1
MOVAL,[SI]
a2:
INCSI
CMPAL,[SI]
JG next3
MOVAL,[SI]
next3:
LOOP a2
MOV[DI],AL
;求有符号数最小值
LEASI,num
MOVCX,count-1
MOVAL,[SI]
2.Loop循环中出现问题,应该把INCSI和INCDI放在循环中比较语句后
3.比较后直接写的next语句,忘记还要执行一个MOV[DI], AL,从而导致输出一直为0.
2、有一个字节型数组,求最大值、最小值和平均值:1)作为无符号数,2)作为带符号。
①已知数据段的定义:
data segment
org 2000h
MOV[DI],AL
;求无符号数平均值
LEASI,num
LEADI,RES1
MOVCX,count
XORBX,BX
mean:
MOVAL,[SI];将数放在al
CWD;扩为32位,跳过符号
ADDBX,AX
INCSI
LOOP mean
MOVAX,BX;将求和结果放回al
MOVcx,count
DIVcx
MOV[DI][2],AL
a:
INCSI
CMPAL,[SI]
JA next1
MOVAL,[SI]
next1:
LOOP a
MOV[DI],AL
;求无符号数最小值
LEASI,num
MOVCX,count-1
MOVAL,[SI]
INCDI
b:
INCSI
CMPAL,[SI]
JB next2
MOVAL,[SI]
next2:
LOOP b
num db 12h,95h,0f1h,0c2h,82h,2h,10h,34h
count db $-num
org 3000h
res1 db 3 dup(?) ;store unsigned
org 4000h
res2 db 3 dup(?) ;store signed
data ends
②画流程图
代码:
next:
MOV[DI], AL
INCSI
INCDI
LOOP AA
RET
STARTENDP
CODEENDS
ENDSTART
结果:
1.
2.
③debug调试:修改str1字符串的值,运行看结果。
结果:
1.
2.
问题:
1.未注意到LOOP循环的结束条件是CX为0,故设计时应该用MOVE CX, COUNT这样的语句,执行一次自减一,直到CX为0不执行循环。
5.最开始时发现有符号数求平均与无符号数相等,修改为有符号数求和时要先扩为字,再扩为双字,这样符号位才不会遗失。
①已知数据段的定义:
data segment
org 2000h
str1 db‘Aedc123!*sdeDIO71$’
count equ $-str1
org 3000h
str2 db count dup(?)
data ends
②画流程图
不是
是
代码:
datasegment
org2000h
str1db'Aedc123!*sdeDIO71$'
微机原理实验报告册(3篇)
第1篇一、实验目的1. 理解和掌握微机的基本组成和工作原理;2. 熟悉微机硬件设备和实验仪器的使用方法;3. 提高动手实践能力,培养解决实际问题的能力;4. 深入理解微机原理课程内容,为后续课程学习奠定基础。
二、实验内容1. 微机系统认识实验2. 微机硬件组成实验3. 微机指令系统实验4. 微机寻址方式实验5. 微机程序设计实验6. 微机接口技术实验三、实验仪器与设备1. 微机原理实验箱2. 示波器3. 数字万用表4. 计算机一台5. 实验指导书四、实验步骤与内容1. 微机系统认识实验(1)观察实验箱的结构,了解各个模块的功能;(2)熟悉实验箱的电源、复位、运行等按钮的使用方法;(3)学习微机系统的工作流程,包括加电、复位、启动等过程;(4)观察微机系统启动后的运行状态,了解各个模块的协同工作。
2. 微机硬件组成实验(1)观察实验箱的CPU、内存、I/O接口等硬件模块;(2)学习CPU的内部结构,包括寄存器、控制单元、运算单元等;(3)学习内存的存储原理,了解ROM、RAM等存储器的特点;(4)学习I/O接口的工作原理,了解中断、DMA等传输方式。
3. 微机指令系统实验(1)学习微机指令系统的基本格式,包括操作码、地址码等;(2)掌握微机指令系统的寻址方式,包括立即寻址、直接寻址、间接寻址等;(3)编写简单的汇编语言程序,实现加、减、乘、除等运算;(4)学习微机中断处理过程,了解中断向量表、中断服务程序等概念。
4. 微机寻址方式实验(1)学习微机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等;(2)编写程序,实现不同寻址方式下的数据访问;(3)观察不同寻址方式对程序执行速度的影响。
5. 微机程序设计实验(1)学习汇编语言程序设计的基本方法,包括数据定义、指令编写、程序结构等;(2)编写简单的程序,实现数据交换、排序等操作;(3)学习微机程序的调试方法,包括单步执行、断点设置等。
6. 微机接口技术实验(1)学习微机接口技术的基本概念,包括并行接口、串行接口等;(2)观察实验箱中的并行接口、串行接口等模块,了解其工作原理;(3)编写程序,实现数据在并行接口、串行接口之间的传输;(4)学习微机中断处理在接口技术中的应用。
微机原理的实验报告
一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。
二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。
(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。
(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。
2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。
(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。
(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。
3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。
(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。
(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。
4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。
(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。
(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。
三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。
2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。
3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。
4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
微机原理与接口技术实验报告
微机原理与接口技术实验报告实验目的:本次实验旨在熟悉并掌握微机原理与接口技术的相关知识,通过实例操作和分析实验数据,加深对微机原理与接口技术的理解。
一、实验器材与软件1. 硬件器材:计算机主机、外设设备2. 软件工具:操作系统、编程软件二、实验步骤及结果分析1. 实验1:计算机开机自检在实验中,通过开机启动计算机,观察计算机进行自检的过程。
根据显示屏上的自检信息,可以判断计算机硬件的工作状态。
2. 实验2:串口通信测试在本实验中,通过串口通信实现计算机与外设设备之间的数据传输。
首先,将串口接口连接到计算机主机,然后进行相应的设置,包括波特率、数据位、停止位和校验位等。
在实验中,通过编写相应的程序,实现计算机与外设设备之间的数据交互。
通过观察实验结果,判断串口通信是否正常。
3. 实验3:并口通信测试本实验旨在通过并行口通信实现计算机与外设设备之间的数据传输。
首先,将并行口接口连接到计算机主机。
然后,根据实验要求进行相应的设置,包括数据总线的宽度、传输模式等。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断并口通信是否正常。
4. 实验4:USB接口测试在本实验中,通过USB接口实现计算机与外设设备之间的数据传输。
首先,将USB接口连接到计算机主机。
然后,在计算机中安装相应的驱动程序。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断USB接口是否正常工作。
5. 实验5:网络接口测试本实验旨在通过网络接口实现计算机之间的数据传输。
首先,将计算机连接到局域网中的其他计算机。
然后,进行相应的设置,包括IP地址、子网掩码等。
通过编写程序,实现计算机之间的数据交互。
观察实验结果,判断网络接口是否正常工作。
三、实验总结通过本次实验,我对微机原理与接口技术有了更深入的了解,掌握了串口、并口、USB接口和网络接口等常用接口的使用方法。
通过实验的操作和分析,我对接口通信的原理和实现方式有了更详细的了解,对计算机与外设设备之间的数据传输有了更清楚的认识。
微机原理与接口技术实验报告_5
实验二初级程序的编写与调试实验一、实验目的1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序.2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入与弹出.3、掌握各种寻址方法以及简单指令的执行过程.二、实验内容1.设堆栈指针SP=2000H,AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换.请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试.程序:MOV AX,3000MOV BX,5000MOV SP,2000PUSH AXPUSH BXPOP AXPOP BXHLT2.设DS=当前段地址,BX=0300H,SI=0002H请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入OAH,OBH,OCH,ODH,OEH.在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?-E 300 0A,0B,0C,0D,0E-AMOV BX,0300MOV SI,0002MOV AX,BXMOV AX,0304MOV AX,[0304]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI] HLT3.设AX=0002H,编一个程序段将AX的内容乘10,要求用移位的方法完成. 程序:MOV AX,0002MOV BX,AXMOV CL,2SHL AX,CLADD AX,BXMOV CL,1SHL AX,CLHLT实验四加法及判断程序的编写与调试一、实验目的1.熟练掌握编写汇编语言源程序的基本方法和基本框架.2.学会编写顺序结构,分支结构和循环结构的汇编程序3.掌握程序中数据的产生与输入输出的方法.二、实验内容1.用汇编语言编写一个加法程序:1325+9839请用ASCII码的形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加结果显示输出.程序:DATA SEGMENTDATA1 DB '5','2','3','1'DATA2 DB '9','3','8','9'DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 200 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SI,DATA1LEA DI,DATA2MOV CX,4MOV AH,0 NEXT:MOV AL,[SI]ADC AL,[DI]ADC AL,AHMOV AH,0AAAADD AL,30HMOV [DI],ALINC DIINC SILOOP NEXTMOV CX,5ADD AH,30HMOV [DI],AH NEXT1:MOV DL,[DI]MOV AH,02INT 21HDEC DILOOP NEXT1MOV AH,4CHINT 21H CODE ENDSEND START2.假设有一组数据:5,-4,0,3,100,-51,请编写一程序,判断:每个数是否大于0?等于0?还是小于0?并输出其判断结果,即即:1当X>0Y=0当X=0-1 当X<0程序:DATA SEGMENTDATA1 DB 5, -4, 0 ,3,100,-51STRING1 DB'Y=1','$'STRING2 DB'Y=0','$'STRING3 DB'Y=-1','$'DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 200 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SI,DATA1MOV CX,6NEXT: MOV AL,[SI]CMP AL,0JZ NEXT1JNS NEXT2JS NEXT3NEXT1: MOV DX,OFFSET STRING2MOV AH,09HINT 21HJMP NEXT4NEXT2: MOV DX,OFFSET STRING1MOV AH,09HINT 21HJMP NEXT4NEXT3: MOV DX,OFFSET STRING3MOV AH,09HINT 21HNEXT4: INC SILOOP NEXTMOV AH,4CHINT 21HCODE ENDSEND START实验五大小写字母互换程序的编写与调试一、实验目的进一步熟悉汇编语言源程序的编写方法及宏汇编程序的使用方法二、实验内容设内存数据区有大小写混合英文ASCII码字母: ‘AbCdEfGChinaAgriculturalUniversity’。
微机原理与接口技术实验报告
微机原理与接口技术实验报告实验一,微机原理实验。
1. 实验目的。
本实验旨在通过对微机原理的实验,加深学生对微机原理相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括微机原理的基本知识、微处理器的结构和功能、微机系统的总线结构、存储器与I/O接口。
3. 实验步骤。
(1)了解微机原理的基本知识,包括微处理器的分类、功能和工作原理。
(2)学习微机系统的总线结构,掌握总线的分类、功能和工作原理。
(3)了解存储器与I/O接口的基本概念和工作原理。
(4)进行实际操作,通过实验板进行微机原理实验,加深对微机原理知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了微机原理的基本知识,掌握了微处理器的结构和功能,了解了微机系统的总线结构,以及存储器与I/O接口的工作原理。
通过实际操作,我对微机原理有了更深入的认识,提高了自己的动手能力和实验技能。
实验二,接口技术实验。
1. 实验目的。
本实验旨在通过对接口技术的实验,加深学生对接口技术相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括接口技术的基本知识、接口电路的设计与调试、接口技术在实际应用中的作用。
3. 实验步骤。
(1)了解接口技术的基本知识,包括接口的分类、功能和设计原则。
(2)学习接口电路的设计与调试,掌握接口电路设计的基本方法和调试技巧。
(3)了解接口技术在实际应用中的作用,包括各种接口的应用场景和实际案例。
(4)进行实际操作,通过实验板进行接口技术实验,加深对接口技术知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了接口技术的基本知识,掌握了接口电路的设计与调试方法,了解了接口技术在实际应用中的作用。
通过实际操作,我对接口技术有了更深入的认识,提高了自己的动手能力和实验技能。
总结。
通过微机原理与接口技术的实验,我对微机原理和接口技术有了更深入的理解,提高了自己的动手能力和实验技能。
希望通过今后的学习和实践,能够更加深入地掌握微机原理与接口技术的知识,为将来的工作和研究打下坚实的基础。
微机原理实验二 8255A并行接口应用
实验二8255A并行接口应用一、实验目的1.掌握8255A的功能及方式0、1的实现2.熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。
3.了解七段数码管显示数字的原理。
4.掌握同时显示多位数字的技术。
二、8255应用小结1.8255的工作方式一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。
方式0是基本型输入/输出。
这种方式和外设交换数据时,8255端口与外设之间不使用联络线。
方式1为选通型输入/输出。
用这种方式和外界交换数据时,端口和外设之间要有联络信号。
方式2是双向数据传送,仅A口有这项功能。
当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。
2. 工作方式选择字8255工作方式选择字共8位(如图),存放在8255控制寄存器中。
最高位D7为标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。
3.C口置/复位控制字8255的C口可进行位操作,即:可对8255C口的每一位进行置位或清零操作,该操作是通过设置C口置/复位字实现的(图8-10)。
C口置/复位字共8位,各位含义如下:3.8255A的控制信号与传输动作的对应关系4.命令字与初始化编程8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是:①向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。
②当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字”。
这一操作的主要目的是使相应端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断允许触发器置1,从而允许端口提出中断请求。
注意:“C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,所以要写入控制寄存器,而不是写入C口控制寄存器。
微机原理及应用实验报告
微机原理及应用实验报告微机原理及应用实验报告1. 引言微机原理及应用是计算机科学与技术专业的一门重要课程,通过该课程的学习和实验,我们可以深入了解微机的基本原理和应用技术。
本文将对我们进行的微机原理及应用实验进行详细报告,包括实验目的、实验内容、实验步骤、实验结果及分析等。
2. 实验目的本次实验的目的是通过实际操作,加深对微机原理的理解,掌握微机的基本组成和工作原理,以及学习并应用微机的常见应用技术。
3. 实验内容本次实验主要涉及以下内容:- 微机的基本组成和结构- 微机的工作原理- 微机的存储器和输入输出设备- 微机的指令系统和编程技术4. 实验步骤4.1 实验一:微机的基本组成和结构在这个实验中,我们首先学习了微机的基本组成和结构,包括中央处理器、存储器、输入输出设备等。
通过观察实际的微机硬件设备,我们对微机的组成有了更加直观的认识。
4.2 实验二:微机的工作原理在这个实验中,我们学习了微机的工作原理,包括指令的执行过程、中央处理器的工作原理等。
通过实际操作,我们对微机的工作过程有了更加深入的理解。
4.3 实验三:微机的存储器和输入输出设备在这个实验中,我们学习了微机的存储器和输入输出设备的原理和应用。
通过实际操作,我们了解了存储器的读写过程,以及输入输出设备的工作原理。
4.4 实验四:微机的指令系统和编程技术在这个实验中,我们学习了微机的指令系统和编程技术。
通过实际编写和执行简单的汇编语言程序,我们掌握了微机的编程技术,并了解了指令的执行过程。
5. 实验结果及分析通过以上实验,我们对微机的原理和应用有了更加深入的理解。
我们通过实际操作,掌握了微机的基本组成和结构,了解了微机的工作原理,熟悉了微机的存储器和输入输出设备,掌握了微机的指令系统和编程技术。
这些知识和技能对我们今后的学习和工作都具有重要的意义。
6. 总结通过本次微机原理及应用实验,我们深入了解了微机的基本原理和应用技术。
通过实际操作,我们对微机的组成和工作原理有了更加直观和深入的理解,掌握了微机的存储器和输入输出设备的原理和应用,以及微机的指令系统和编程技术。
东南大学微机原理第二次实验报告
《微机实验及课程设计》实验报告实验二汇编语言程序设计姓名:学号:专业:仪器科学与工程学院实验室:计算机硬件技术实验时间: 2014年04月24日报告时间: 2014年05月7日评定成绩:审阅教师:实验目的与内容目的:1)进一步熟悉汇编语言程序的编辑、宏汇编、链接、运行基本概念;2)熟练掌握动态调试程序TD/DEBUG 的常用命令或窗口功能,学会用TD/DEBUG 调试程序,修改数据和寄存器等环境;3)熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,了解DOS/BIOS 功能调用的基本方法内容:1.从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其它字符不变),并按原顺序将这些字符在屏幕上显示出来(参考程序P36),并显示字符串“The total number is XXXXX”。
2.从键盘输入一个0~255之间的十进制数,将其转换为16进制数,并在屏幕上显示变换前后的数据(参考程序P38)。
流程图实验源程序实验1data segmentinput db 100,100 dup(?)string1 db 0dh,0ah,'please input your strings',0dh,0ah,'$' string2 db 0dh,0ah,'the string you input are:',0dh,0ah,'$' string3 db 0dh,0ah,'do you want to conyinue(y/n)',0dh,0ah,'$' string4 db 0dh,0ah,'the total number is',0dh,0ah,'$'data endsstacks segment stackdb 256 dup(?)stacks endscode segmentassume cs:code,ds:data,ss:stacksmain proc farstart:mov ax,datamov ds,axmov ax,stacksmov ss,axloop1:mov dx,offset string1mov ah,09hint 21hmov dx,offset inputmov ah,0ahint 21hmov dx,offset string2mov ah,09hint 21hcall dispmov dx,offset string4mov ah,09hint 21hmov cl,input[1]add cl,30hmov dl,clmov ah,02hint 21hmov dx,offset string3mov ah,09hint 21hmov ah,01hint 21hcmp al,'y'jz loop1mov ah,4chint 21hmain endpdisp proc nearxor cx,cxmov cl,input[1]mov si,2again:mov dl,input[si]cmp dl,61h ;判断是否是小写字母jb nextcmp dl,7ahja nextsub dl,20h ;将小写字母转换成大写字母next:mov ah,02hint 21hinc siloop againretdisp endpcode endsend startdata segmentright db 1input db 4,5 dup(0)output db 00hten db 0ahstring1 db 0dh,0ah,'please input your number(0~255)',0dh,0ah,'$'string2 db 0dh,0ah,'The number you input is (00H~FFH)',0dh,0ah,'$' string3 db 0dh,0ah,'Do you want to continue (y/n):',0dh,0ah,'$'string4 db 0dh,0ah,'The number you input is not from 0~255',0dh,0ah,'$' data ends;----------------------------------------------------------------------- stacks segment stackdb 256 dup(0)stacks ends;----------------------------------------------------------------------- code segmentassume cs:code,ds:data,ss:stacksmain proc farstart:mov ax,datamov ds,axmov ax,stacksmov ss,axloop1:mov output,00hmov dx,offset string1mov ah,09hint 21hmov dx,offset inputmov ah,0ahint 21hmov right,1call changecmp right,0jz errormov dx,offset string2mov ah,09hint 21hmov al,outputmov dl,almov cl,4shr dl,clcall dispmov dl,aland dl,0fhcall dispjmp goerror:mov dx,offset string4mov ah,09hint 21hgo: mov dx,offset string3mov ah,09hint 21hmov ah,01hint 21hcmp al,'y'jz loop1mov ah,4chint 21hmain endp;------------------------------------------------------------------------ change proc nearclcxor ax,axxor bx,bxxor dx,dxmov cl,input[1]mov si,2again:mov bl,input[si]cmp bl,30hjb error1cmp bl,39hja error1sub bl,30hdec clcmp cl,0jz overmov ax,1push cxloop2:mul tenloop loop2pop cxmul bladd output,al ;----jc errorinc sijmp againover:add output,bl ;----jnc over1error1:mov right,0over1:retchange endp;--------------------------------------------------------------------------- disp proc nearpush dxpush axcmp dl,9jbe numadd dl,7 ;----num: add dl,30hmov ah,02h int 21hpop axpop dxretdisp endpcode ends end start实验结果实验一实验二。
微机实验报告 南邮
微机实验报告南邮微机实验报告南邮引言:微机技术是当今信息时代的重要组成部分,它已经深入到我们生活的方方面面。
作为一名南邮的学生,我有幸参与了一次关于微机实验的课程。
在这次实验中,我们学习了微机的基本原理和应用,深入了解了微机的内部结构和工作原理。
本文将对这次实验进行详细的介绍和总结。
一、实验目的本次实验的主要目的是让我们了解微机的基本组成部分,包括中央处理器(CPU)、内存、输入输出设备等,并通过实际操作来加深对微机工作原理的理解。
同时,我们还需要学会使用汇编语言编写简单的程序,并通过微机进行运行和调试。
二、实验过程1. 硬件部分在实验开始前,我们首先了解了微机的硬件组成。
我们学习了CPU的结构和功能,了解了内存的存储原理,还学习了输入输出设备的工作原理。
然后,我们根据实验指导书的要求,搭建了一个简单的微机系统,包括主板、CPU、内存、硬盘等。
通过这个过程,我们对微机的硬件有了更加深入的了解。
2. 软件部分在硬件搭建完成后,我们开始学习如何使用汇编语言编写程序。
汇编语言是一种底层的程序设计语言,通过它可以直接控制CPU进行各种操作。
我们学习了如何使用汇编语言编写简单的程序,例如计算两个数的和、求解阶乘等。
通过这个过程,我们对汇编语言有了初步的了解,并且掌握了一些基本的编程技巧。
3. 实验操作在学习了硬件和软件知识后,我们开始进行实验操作。
我们首先编写了一个简单的程序,然后通过汇编器将其转换成机器码,并将机器码加载到内存中。
接下来,我们启动微机,程序开始运行。
通过观察微机的运行情况,我们可以判断程序是否正确,并进行调试。
通过这个过程,我们深入了解了微机的工作原理,以及程序和硬件之间的关系。
三、实验结果在实验过程中,我们成功地搭建了一个微机系统,并编写了多个程序进行运行和调试。
通过观察程序的运行结果,我们可以判断程序是否正确,并进行相应的修改和调试。
在实验的最后,我们成功地运行了一个复杂的程序,并获得了正确的结果。
uestc微机原理实验报告2
ldrr3,[r2]
orrr3,r3,#0x01e0
bicr3,r3,#0x01E0;按位清零
strr3,[r2] ;GPG8(即LED8) output0
ldrr0,=0xffffff;初始计数值
bldelay
;-------------实现LED5-LED8全部熄灭并调用延时-------------------
(二)LED C语言实验(选做)
八、实验数据及结果分析
ARM汇编控制LED实验:要求是实现一个流水灯,四个灯第一次点亮一个,第二次两个,第三次三个,第四次四个,然后全部熄灭。要实现这个程序,应该是在按位清零的时候对流水灯响应的位置清零就可以。
;GPIO寄存器宏定义
GPGCON EQU 0x56000060
4、在ledtest.s文件中添加汇编代码,点亮LED7,熄灭LED5,LED6,LED8,并调用延时。
5、在ledtest.s文件中添加汇编代码,点亮LED8,熄灭LED5,LED6,LED7,并调用延时。
6、在ledtest.s文件中添加汇编代码,实现LED5-LED8依次点亮。
7.连接好JTAG仿真板,一口与PC的并口相连,另一口与开发板的JTAG口相连,打开开发板电源。打开H-jtag程序,检测CPU,点击RVDS中的“Debug”,打开RVD进行硬件调试
;----------点亮LED5,LED6,LED7,熄灭LED8,并调用延时----
ldrr3,[r2]
orrr3,r3,#0x01e0
bicr3,r3,#0x00E0;按位清零
strr3,[r2];GPG7(即LED7) output0
