南邮 微机原理(微型计算机与接口技术)微机原理实验

南邮 微机原理(微型计算机与接口技术)微机原理实验
南邮 微机原理(微型计算机与接口技术)微机原理实验

;FILEMENT:EXA131.ASM

.486

DA TA SEGMENT USE16

SUM DB ?,?

MESG DB '25+9='

DB 0,0

N1 DB 9,0F0H

N2 DW 25

DA TA ENDS

CODE SEGMENT USE16

ASSUME CS:CODE,DS:DA TA BEG: MOV AX,DA TA

MOV DS,AX

MOV BX,OFFSET SUM

MOV AH,N1

MOV AL,BYTE PTR N2

ADD AH,AL

MOV [BX],AH

CALL CHANG

MOV AH,9

MOV DX,OFFSET MESG

INT 21H

MOV AH,4CH

INT 21H

CHANG PROC

LAST :CMP BYTE PTR [BX],10

JC NEXT

SUB BYTE PTR [BX],10

INC BYTE PTR [BX+7]

JMP LAST

NEXT: MOV DX,word ptr SUM

ADD [BX+8],DX

ADD BYTE PTR [BX+7],30H

ADD BYTE PTR [BX+8],30H

RET

CHANG ENDP

CODE ENDS

END BEG

1.1 程序修改;FILENAME: EXA131.ASM .486 DA TA SEGMENT USE16 SUM DB ?,? MESG DB '25+9=' DB 0,0,'$' N1 DB 9,0F0H N2 db 25 data ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DA TA BEG: MOV AX,DA TA MOV DS,AX MOV BX,OFFSET SUM MOV AH,N1 MOV AL,N2 ADD AH,AL MOV [BX],AH CALL CHANG MOV AH,9 MOV DX,OFFSET mesg INT 21H MOV AH,4CH INT 21H chang PROC LAST: CMP byte ptr [BX],10 JC NEXT SUB byte ptr [BX],10 INC byte ptr [BX+7] JMP LAST NEXT: mov dx,word ptr sum ADD [BX+8],dx ADD byte ptr [BX+7],30H ADD byte ptr [BX+8],30H ret chang endp CODE ENDS END BEG

2.1 学生成绩;FILENAME EXA241.ASM .486 DA TA SEGMENT USE16 N EQU 10 SCORE DB 43,51,61,71,75,82,86,92,99,100 S5 DB 0 S6 DB 0 S7 DB 0 S8 DB 0 S9 DB 0 S10 DB 0 MESG1 DB 'S5(0-59):','$' MESG2 DB ' S6(60-69):','$' MESG3 DB ' S7(70-79):','$' MESG4 DB ' S8(80-89):','$' MESG5 DB ' S9(90-99):','$' MESG6 DB ' S10(100):','$' DA TA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DA TA BEG:MOV AX,DA TA MOV DS,AX MOV AH,00H ; MOV AL,3 ; INT 10H ;前面三行可以去掉不影响运行MOV CX,N AND CX,00FFH MOV BX,OFFSET SCORE COUNT:CMP BYTE PTR [BX],59 JNA COUNT1 CMP BYTE PTR [BX],69 JNA COUNT2 CMP BYTE PTR [BX],79 JNA COUNT3 CMP BYTE PTR [BX],89 JNA COUNT4 CMP BYTE PTR [BX],99 JNA COUNT5 INC S10 JMP SHORT NEXT COUNT1 PROC INC S5 INC BX JMP SHORT NEXT COUNT1 ENDP COUNT2 PROC INC S6 INC BX JMP SHORT NEXT COUNT2 ENDP COUNT3 PROC INC S7 INC BX JMP SHORT NEXT COUNT3 ENDP COUNT4 PROC INC S8 INC BX JMP SHORT NEXT COUNT4 ENDP COUNT5 PROC INC S9 INC BX JMP SHORT NEXT COUNT5 ENDP NEXT:LOOP COUNT MOV AH,09H MOV DX,OFFSET MESG1 INT 21H MOV AH,02H MOV DL,30H ADD DL,S5 INT 21H MOV AH,09H LEA DX,MESG2 INT 21H MOV AH,02H MOV DL,30H ADD DL,S6 INT 21H MOV AH,09H LEA DX,MESG3 INT 21H MOV AH,02H MOV DL,30H ADD DL,S7 INT 21H MOV AH,09H LEA DX,MESG4 INT 21H MOV AH,02H MOV DL,30H ADD DL,S8 INT 21H MOV AH,09H LEA DX,MESG5 INT 21H MOV AH,02H MOV DL,30H ADD DL,S9 INT 21H MOV AH,09H LEA DX,MESG6 INT 21H MOV AH,02H MOV DL,30H ADD DL,S10 INT 21H MOV AH,4CH INT 21H CODE ENDS END BEG 为什么去掉MOV AH,02H 语句后就无法输出正确结果(数值就不对)呢?MOV DL,30H ADD DL,S10 INT 21H 这三条语句为什么能够把统计的数值给输出出来呢?如是S10:1 它是怎么输出的?为什么S10:后就会接着显示 1 呢?MOV AH,00H ; MOV AL,3 ; INT 10H ; 这三条语句有什么作用?2.2 通信字.486 DA TA SEGMENT USE16 BUF1 DB '123456' BUF2 DB '000000' BUF3 DB 'Please input communication words:',0DH,0AH,'$' BUF4 DB 3 OUT1 DB 'ERRORS',0DH,0AH,'$' OUT2 DB 'RIGHT',0DH,0AH,'$' OUT3 DB '*','$' OUT4 DB 0DH,0AH,'$' DA TA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DA TA,ES:DA TA BEG: LAST1: LAST: EXIT: LAST2: CODE MOV MOV MOV MOV MOV INT LEA LEA MOV MOV MOV LEA INT MOV INT MOV INC MOV MOV INT LOOP MOV LEA INT MOV CLD REPE JZ MOV LEA INT DEC JZ JMP MOV LEA INT MOV INT ENDS END AX,DA TA DS,AX ES,AX AH,00H AL,3 10H SI,BUF1 DI,BUF2 BX,OFFSET BUF2 CX,6 AH,09H DX,BUF3 21H AH,07H 21H BYTE PTR [BX],AL BX AH,09H DX,OFFSET OUT3 21H LAST AH,09H DX,OUT4 21H CX,6 CMPSB EXIT AH,09H DX,OUT1 21H BUF4 LAST2 LAST1 AH,09H DX,OUT2 21H AH,4CH 21H BEG

微机原理与接口技术实验汇总

实验要求 1、带预习报告上机 根据实验要求,作好充分预习,设计实验硬件原理及接线图(必须标出相关的管脚号,以备硬件连线及测试),画出程序流程图,写出源程序清单,规划好调试步骤,上机时带预习报告。注意:无预习报告者不得做实验。 2、认真实验,经教师检查后,方可离开 注意掌握软、硬件调试方法,提高分析问题、解决问题的能力。对所编写的程序必须十分清楚,作到知其然,亦知其所以然,硬件电路原理清楚,熟练应用常规的仪器(如万用表、示波器等)检查测试硬件电路。指导教师还会根据实验要求,提出问题。3、按时提交实验报告 实验结束后,在预习报告的基础上,完成实验报告,并于下次实验时交给指导教师。 实验报告格式 实验* ***** ***** ***** 一、实验目的 二、实验内容 三、硬件原理及接线图 四、程序流程图 五、程序清单 六、实验步骤 七、实验结果及现象分析 八、收获及建议 测13实验安排: 地点:综合实验楼0701 实验周次星期小节 一 6 五1,2 二8 五1,2 三10 五1,2 四12 五1,2 五14 五1,2

实验一汇编语言程序的调试 一、实验目的 1、掌握8086汇编程序的编辑、编译、连接及运行过程。 2、掌握使用HQFC软件调试程序的方法。 二、实验内容:编制程序并调试 1、上机调试P45 项目1程序。 要求:1)写出调试步骤 2)记下代码段数据。 3)记下数据段数据 4)用单步调试法调试,记下每句程序目的操作数执行结果。观察每句程序 执行过程中CS、 IP、 FLAGS寄存器的变化。 2、上机调试P54 项目2程序,用单步调试法指出每句程序的调试结果。 要求:1)记下代码段数据。 2)记下数据段数据 3)记下程序执行前附加段数据、程序执行后附加段数据。 3)用单步调试法调试,记下lop句之前每句程序目的操作数执行结果。 观察其它句程序的执行结果,观察每句程序执行过程中CS、 IP、 FLAGS寄存器的 变化。 三、调试步骤 1、编辑源程序,形成****.ASM文件(可用HQFC软件或XP系统下的记事本编辑源程序) (注:在E:盘上建立一个你自己的文件夹,保存你自己的文件) 2、编译,形成****.OBJ文件(可用HQFC软件的编译功能) 3、链接,形成****.EXE文件(可用HQFC软件的构建功能) 4、运行(或调试)(可用HQFC软件的重构运行功能或开始调试) 四、调试步骤参考 1、编译(编译) 在当前运行环境下,选择菜单栏中的“ASM文件编译”菜单,选择编译选项则程序对当前ASM源文件进行编译,编译调试窗口中输出汇编的结果,若程序汇编有错,则详细报告错误信息。双击输出错误,集成开发环境会自动将错误所在行代码显示。 2、构建(汇编+链接) 在当前运行环境下,选择菜单栏中的“ASM文件编译”菜单,选择汇编+链接选项则程序对当前ASM源文件进行汇编与链接,编译调试窗口中输出汇编与链接的结果,若程序汇编或链接有错,则详细报告错误信息。双击输出错误,集成开发环境会自动将错误所在行代码显示。 3、重构运行(汇编+链接+执行) 在当前运行环境下,选择菜单栏中的“ASM文件编译”菜单,选择汇编+链接+执行选项则程序对当前ASM源文件执行,程序自动运行。

南邮 微机实验

(2010 / 2011 学年第二学期) 课程名称微型计算机原理与接口技术 实验名称基于中断的字符串动态显示 实验时间2011 年 5 月18 日指导单位计算机学院 指导教师 学生姓名班级学号 学院(系) 通信学院专业网络工程

实验报告 实验名称基于中断的字符串动态显示指导教师周宁宁 实验类型设计实验学时 2 实验时间2011.5.18 一、实验目的和要求 利用系统定时源设计定时中断程序,要求每隔一定的时间在系统机屏幕上显示一行字符串。显示十行之后自动结束。 二、实验环境(实验设备) 硬件:PC机。 软件:“未来汇编”汇编语言开发环境 三、实验原理及内容 .486 DATA SEGMENT USE16 OLD1C DD ? ICOUNT DB 18 TIME DB 0 MESG DB '/','HELLO WORLD!',0DH,0AH,'$' DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DA TA BEG: MOV AX,DATA MOV DS,AX CLI CALL READ1C CALL WRITE1C STI

SCAN: CMP TIME,10 JNZ SCAN RETURN: CALL RESET MOV AH,4CH INT 21H SERVICE PROC PUSHA PUSH DS MOV AX,DA TA MOV DS,AX DEC ICOUNT JNZ EXIT MOV ICOUNT,18 INC TIME INC MESG MOV AH,9 LEA DX,MESG INT 21H EXIT: POP DS POPA IRET SERVICE ENDP READ1C PROC MOV AX,351CH INT 21H MOV WORD PTR OLD1C,BX MOV WORD PTR OLD1C+2,ES RET READ1C ENDP WRITE1C PROC PUSH DS MOV AX,CODE MOV DS,AX MOV DX,OFFSET SERVICE MOV AX,251CH INT 21H POP DS RET WRITE1C ENDP RESET PROC

微机原理实验报告

汇编语言程序设计实验 一、实验内容 1.学习并掌握IDE86集成开发环境的使用,包括编辑、编译、链接、 调试与运行等步骤。 2.参考书例4-8,P165 (第3版161页)以单步形式观察程序的 执行过程。 3.修改该程序,求出10个数中的最大值和最小值。以单步形式观 察,如何求出最大值、最小值。 4.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态。 二、实验目的 1.学习并掌握IDE86集成开发环境的使用 2.熟悉汇编语言的基本算法,并实际操作 3.学会利用IDE86进行debug的步骤 三、实验方法 1.求出10个数中的最大值和最小值 (1)设计思路:利用冒泡法,先对数据段的10个数字的前2个比 较,把二者中大的交换放后面。在对第二个和第三个数比较,把 二者中较大的交换放后面,依此类推直到第十个数字。这样第十 位数就是10个数里面最大的。然后选出剩下9个数字里面最大 的,还是从头开始这么做,直到第九个数字。以此类推直到第一 个数字。

(2)流程图 2.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态

(1)设计思路:结果存放在sum里面,加数是i(初始为1),进行 100次循环,sum=sum+I,每次循环对i加1. (2)流程图: 四、 1.求出10个数中的最大值和最小值

DSEG SEGMENT NUM DB -1,-4,0,1,-2,5,-6,10,4,0 ;待比较数字 DSEG ENDS CODE SEGMENT ASSUME DS:DSEG,CS:CODE START:MOV AX,DSEG MOV DS,AX LEA SI,NUM MOV DX,SI MOV CL,9 ;大循环计数寄存器初始化 NEXT1:MOV BL,CL ;大循环开始,小循环计数器初始化MOV SI,DX NEXT2:MOV AL,[SI+1] CMP [SI],AL ;比较 JGGONE ;如果后面大于前面跳到小循环末尾CHANGE:MOV AH,[SI] ;交换 MOV [SI+1],AH MOV [SI],AL JMP GONE GONE:add SI,1 DEC BL JNZ NEXT2

微机原理与接口技术实验报告

微机原理与接口技术实验报告

2

3

实验一:数据传送 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 1.学习程序设计的基本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法; 学习用全屏幕编辑软件QEDIT.EXE建立源程序(.ASM文件); 学习用汇编软件MASM.EXE对源文件汇编产生目标文件(.OBJ文件); 学习用连接程序LINK.EXE对目标文件产生可执行文件(.EXE文件); 学习用调试软件TD.EXE调试可执行文件; 2.掌握各种寻址方法以及简单指令的执行过程。 二.实验器材 PC机 三.实验组织运行要求 1.利用堆栈实现AX的内容与BX的内容进行交换。堆栈指针SP=2000H,AX=3000H,BX=5000H; 2.汇编、调试、观察、记录结果; ⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘; ⑵用MASM对源程序进行汇编产生二进制目标文件(.OBJ文件),再用连接程序LINK产生可执行文件(.EXE文件); ⑶用调试软件TD调试、运行程序,观察、记录结果。 四.实验步骤 1.进入子目录E:>\SY86后,利用QEDIT.EXE(简称Q)送入以下汇编语言源程序,并以M1.ASM文件存盘 ⑴汇编语言程序的上机过程 ①进入\SY86子目录 E:>CD\SY86 E:\SY86> ②进入QEDIT.EXE 编辑界面 E:\SY86> Q ③输入文件名*.ASM(如M1.ASM)后,输入源程序 源程序 DATA SEGMENT PARA PUBLIC’DATA’ ;数据段定义 DB 512 DUP(0) DATA ENDS STACK SEGMENT PARA STACK’STACK’ ;堆栈段定义 DB 512 DUP( ?) 4

微机原理实验报告E02

【E02】OLED液晶显示实验实验报告 院系:电子科学与技术学院 专业:微电子科学与工程 实验者姓名:万子昂 学号: 35320172200223 实验时间: 2020 年 5 月 11 日 实验报告完成时间:2020 年 5 月 11 日 指导老师意见:

一、实验目的: 1、进一步熟悉MSP432微控制器GPIO引脚的使用 2、学会OLED显示屏与微控制器的接口方法和使用方法 二、实验内容要求: 1、创建工程项目,添加项目文件,配置项目环境等; 2、在OLED屏上显示姓名和学号(字模软件转换汉字) 3、在同一行上显示一段包括中文、英文、数字的内容 三、实验注意事项 1、短路问题:导线、示波器探头、金属笔帽等(断电操作) 2、接插件暴力拔插:顺着接插方向 四、代码: OLED_ShowCHinese(0,0,0); OLED_ShowCHinese(16*1-1,0,1); OLED_ShowCHinese(16*2-1,0,2); OLED_ShowString(0,4,"35320172200223"); {0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x80,0x00}, {0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00},/*"开",0*/ {0x00,0x00,0x18,0x16,0x10,0xD0,0xB8,0x97,0x90,0x90,0x90,0x92,0x94,0x10,0x00,0x00}, {0x00,0x20,0x10,0x8C,0x83,0x80,0x41,0x46,0x28,0x10,0x28,0x44,0x43,0x80,0x80,0x00},/*"发",1*/ {0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xFC,0x24,0xE4,0x24,0x22,0x23,0xE2,0x00,0x00}, {0x04,0x03,0x00,0xFF,0x00,0x83,0x60,0x1F,0x80,0x41,0x26,0x18,0x26,0x41,0x80,0x00},/*"板",2*/ OLED_ShowString(0,0,"MSP432"); OLED_ShowCHinese(50,0,0); OLED_ShowCHinese(50+16*1-1,0,1); OLED_ShowCHinese(50+16*2-1,0,2); 五、实验结果:

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

微机原理与接口技术李珍香版十个实验程序说课讲解

微机原理与接口技术李珍香版十个实验程 序

实验一 1.实验目的:掌握汇编语言源程序的结构。 2.实验内容:显示一串字符串“hellow world! 班级,学号”。3.实验代码: DATA SEGMENT MS DB ' Hello,World!$' NS DB ' 151044A,151044106$' DATA ENDS STACK SEGMENT STACK DW 50 DUP(?) STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE:CODE,SS:STACK START:MOV AX,DATA MOV DS,AX MOV DX,OFFSET MS MOV AH,9 INT 21H MOV AX,DATA MOV DS,AX

MOV DX,OFFSET NS MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START 4.实验结果:

实验二 1.实验目的:熟悉汇编语言源程序的编辑、汇编、连接、调试 过程 2.实验内容:两个8位16进制数相加(生日+当天日期) 3.实验代码: DATA SEGMENT SR DD 19970925H RQ DD 20171111H DATA ENDS STACK SEGMENT STACK DB 50 DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AX,WORD PTR SR ADD AX,WORD PTR RQ

南邮微机原理实验报告资料

《微型计算机原理与接口技术》 上机实验 学院:电子科学与工程 专业:电磁场与无线技术 姓名:陈秀慧 课程号:B0300062S 学号: B14020604 任课老师:欧晓鸥 2016年 3 月 21日

一、实验目的 熟悉第四章汇编语言程序设计中简化段定义格式,汇编语言循环结构的实现,DOS功能的调用等功能,以及算术运算程序设计中字符串处理程序设计中内容的显示,十六进制ASCII码与各数值的转化,比较搜索等命令。 二、实验任务 1.在微型计算机上用汇编语言编程完成实验内容所规定的实验; 2.记录源代码和程序调试过程; 3.完成实验报告。 三、主要仪器设备 硬件:微型计算机 软件:未来汇编 四、实验内容 上机题1.显示5行HELLO 源程序: .486 DATA SEGMENT USE16 MESG DB 'HELLO' DB 0,0,0 DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV ES,AX MOV CX,5 LL1: MOV MESG+5,0DH MOV MESG+6,0AH MOV MESG+7,'$' CALL DISP MOV MESG+5,0 MOV MESG+6,0 MOV MESG+7,0 LOOP LL1 MOV AH,4CH INT 21H DISP PROC MOV AH,9 MOV DX,OFFSET MESG INT 21H RET

DISP ENDP CODE ENDS END BEG 运行结果: 上机题2.询问用户姓名并等待输入,用户输入姓名后按回车键程序再把输入的姓名复制显示在屏幕上 源程序: .586 DATA SEGMENT USE16 MESG DB 'What is your name?$' MESG2 DB '?(Y/N)$' BUF DB 30 DB ? DB 30 DUP(?) DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX AGAIN:MOV AH,9 MOV DX,OFFSET MESG INT 21H MOV AH,0AH MOV DX,OFFSET BUF

微机原理与接口技术实验指导书1_[1]...

微机原理与接口技术实验指导书 编者:王亭岭 华北水利水电学院 电气学院自动化教研室 二零一二年三月

目录 实验一标志寄存器应用 (1) 实验二指令寻址方式练习 (4) 实验三分支结构程序设计 (6) 实验四循环结构程序设计 (7) 实验五子程序结构程序设计 (8) 实验六DOS系统功能调用程序设计 (10) 实验七BIOS中断调用程序设计 (12) 实验八定时器中断程序设计 (14)

实验一标志寄存器应用 一、实验目的与要求 1.掌握汇编程序的编译过程; 2.掌握8086的标志寄存器的特点。 二、实验内容 微型计算机(80x86系列)。 四、实验参考程序 DATA SEGMENT A DW 123 B DW 456 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA START: MOV AX , DATA MOV DS , AX MOV AX , A SUB AX , B MOV SUM , AX MOV AH,4CH INT 21H CODE ENDS END START 五、实验步骤 步骤一、用鼠标单击开始菜单,单击运行。如下图所示:

步骤二、在运行窗口中键入cmd,回车进入命令提示符。如下图所示: 步骤三、在命令提示符中编译汇编源程序并连接*.obj文件。如下图所示:1.C:\>D: 回车 2.D:\ >CD MASM 回车 3.D:\MASM>MASM SY1.ASM 回车 4.D:\MASM>LINK SY1.OBJ 回车

步骤四、在命令提示行中运行并调试汇编程序。如下图所示:1.D:\MASM>SY1.EXE 回车 2.D:\MASM>DEBUG SY1.EXE 回车 六、实验结论 1.程序运行后变量SUM的值是多少? 2.程序运行前后标志寄存器的各标志位有何变化? 3.分析实验结果及所遇到的问题,并说明解决的方法。

南邮考研_微机原理真题

南邮考研_微机原理历年复试题 2004 问答:计算机系统/计算机组成原理的定义。 1.填空:字符串并,倒置 2.问答:8254方式N的特点(书P173-177) 3.问答:中断/DMA的区别,DMA的特点,DMA的传送方式 4.程序题:(2进制-10进制转换)(书P118) 5.程序题:串行的2种方式;8250初始化(P118) 6.程序填空:有关8254的 7.程序题:8254+8259A 8.问答:中断方式 2005 1.关于计算机中数制的转换 2.N位补码真值的范围 3.有关汇编中关于堆栈的地址计算 4.生成COM或EXE文件的汇编步骤(P85) 5.分析指令错误 6.8254的3个计数器的功能(P181) 7.异步通信数据格式(一帧数据的格式,P230) 8.非屏蔽中断条件(P202) 9.溢出错误的原因,单工,双工的概念(P229) 10.8255A方式1的联络线的定义及物理意义 11.程序题:8254计数器产生900HZ的方波,经过滤波后送到扬声器发声,当按下任意键声 音停止(P181) 12.程序题:(关于串操作指令)用多种方法进行数据块传送(P64) 2006 1.设字长为8位,X=(8EH)补其真值位F2 H 2.写出下列操作的寻址方式: MOV DL,DS:[BP+10] 基址 ADD DL,BUF 直接 3.用图表表示下列数据的存储方式: BUF1 DB 2乘5,0A6H,’HELLO’ BUF2 DD ‘AB’,’A’ BUF3 DW 87654321H 4.编写程序,把10字节的数据块从偏移地址BUF开始的单元传送到偏移地址BUF+5开 始的缓冲区 5.编写程序,输出800HZ的音乐(P238) 6.用一条操作完成下列目标: 使AL第1位置为1 使AL后4位为0

微机原理与接口技术 实验报告

微机原理与接口技术 实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名:

实验一8259中断控制器应用实验 一、实验目的 1.掌握PC机中断处理系统的基本原理。 2. 掌握可编程中断控制器8259的应用编程方法。 二、实验内容 1.PC机内中断实验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。 2.PC机内中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。 3.扩展多中断源查询方式应用实验。利用实验平台上8259控制器作为中断扩展源,编写程序对8259控制器的中断请求进行处理。 三、实验步骤 1.实验1-1:PC机内中断应用实验 (1)按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,屏幕显示结果截图如下: (2)自设计实验。改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考本实验代码,编程实现IRQ10中断。(注意:考虑PC机内中断级联的方式,参看前面的原理说明),代码如下: DA TA SEGMENT MESS DB 'IRQ10 ',0DH,0AH, '$' DA TA ENDS

CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, CS MOV DS, AX MOV DX,OFFSET INT10 MOV AX,2572H ;设置IRQ10对应的中断向量 INT 21H IN AL,21H ;读取中断屏蔽寄存器 AND AL,0F3H ;开放IRQ3中断和从片 OUT 21H,AL IN AL,0A1H ;从片的中断屏蔽寄存器 AND AL,0FBH ;开放IRQ10中断 OUT 0A1H,AL MOV CX,10 STI WAIT: JMP W AIT INT10: MOV AX, DATA ;中断服务程序 MOV DS, AX MOV DX, OFFSET MESS MOV AH, 09 ;在屏幕上显示每次中断的提示信息 INT 21H MOV AL, 20H ; 发出EOI结束中断到PC内主片的地址20H OUT 20H, AL LOOP NEXT IN AL, 21H ;读中断屏蔽寄存器,获取中断屏蔽字 OR AL, 08H ;关闭IRQ3中断 OUT 21H, AL ;将中断屏蔽字送到中断屏蔽寄存器 STI ;置中断标志位 MOV AH, 4CH ;返回DOS INT 21H NEXT: IRET ;中断返回 CODE ENDS END START 调用程序代码,观察实验现象,屏幕显示截图如下:

微机原理实验1和实验2报告

哈尔滨工程大学 实验报告 实验名称:熟悉实验环境及简单程序设计 班级:06-521 学号:06052122 姓名:张禹 实验时间:2009-7-3 成绩: 指导教师:王向红 实验室名称:水声电子信息实验中心_ 哈尔滨工程大学实验室与资产管理处制

1.实验名称:熟悉实验环境及简单程序设计 2.实验目的: 1. 熟悉实验环境。 2.掌握基本DEBUG命令。 3.熟练掌握汇编语言编写、调试和运行的基本方法。 4.掌握数据在寄存器、内存中的存放方式和寻址方式。 3.实验仪器: pc机一台 4.实验内容与实验步骤: 1.编写程序,移位相加指令实现将AL寄存器中的无符号数乘以10。 思考题:若(AL)*10的结果较大,超过了一个字节的表示范围,编程时如何处理?请编程调试。 2.多字节加法程序:编程实现两个32位二进制数据的加法程序 3.给出一组数据:1234H,3456H,3455H,1111H,0FFFFH,0001H 编程分别实现: 1、将以上数据视为无符号数找出其中最大值。 2、将以上数据视为带符号数找出其中最大值。 思考:若要分别求出以上两种情况的最小值,程序将要做何改动? 5.实验原理: 实验1 用移位相加实现乘以10,乘以10即是(2+8),左移一位相当于乘以2,所以先将AL的数左移一位后存入BL中,然后再将AL的数再左移两位,此时的AL存储的值左移了三位相当于乘以8,BL的值是左移了一位的数即乘以2,因此将AL的值加上BL 的值便可以的到乘以10的结果。 如果AL*10的值较大,则可以将寄存器换用AX和BX,将原来的值存入AX的低八位,高八位添0,利用上面同样的方法可得到乘以10的结果。 实验2 要实现两个32字节的数相加,则必须采用分布相加的方法。应为所有的寄存器最多为16位,所以得先将32位的低16位相加,让后两高16位和低16相加的进位三者相加,注意此时仍可能得到一进位。 实验3 要找出一组数据的最大或者最小值,采用逐个比较的方法,即首地址的数放入AX寄存器然后逐个与后面的数比较,如果AX寄存器的数大于所

南邮微机原理试验一二

1.1 程序修改 .486 DATA SEGMENT USE16 SUM DB ?,? MESG DB '25+9=' DB 0,0,'$' N1 DB 9,0F0H N2 DB 25 DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV BX,OFFSET SUM MOV AH,N1 MOV AL,N2 ADD AH,AL MOV [BX],AH CALL CHANG MOV AH,9 MOV DX,OFFSET MESG INT 21H MOV AH,4CH INT 21H CHANG PROC LAST: CMP BYTE PTR [BX],10 JC NEXT SUB BYTE PTR[BX],10 INC BYTE PTR [BX+7] MOV AH, BYTE PTR[BX] JMP LAST NEXT: MOV DX,WORD PTR SUM ADD [BX+8],DX ADD BYTE PTR [BX+7],30H ADD BYTE PTR [BX+8],30H RET CHANG ENDP CODE ENDS END BEG

2.3.4从数据段NUM单元开始存有9个有符号数,并编写一个程序实现:找出最小值存放到数据段MIN单元,并将负数的个数以十进制的形式显示在屏幕上。 .486 DATA SEGMENT USE16 NUM DB -8,-44,-88,-37,2,-1,8,-26,-18 MIN DB ? AB DB '0' DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE , DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV BX,OFFSET NUM MOV CH,0 MOV CL,9 AGAIN: CMP BYTE PTR [BX] ,0 JG NEXT1 INC AB CMP BYTE PTR [BX], CH JG NEXT1 MOV CH,BYTE PTR [BX] NEXT1: INC BYTE PTR BX DEC CL

微机原理与接口技术实验报告

微机原理与接口技术课程设计报告题目:继电器控制实验设计 学院电子与信息工程学院 专业通信工程年级 10级 学生姓名 xx 学号 _ xxxxxxxx 指导教师 xx 完成时间 2012/11/9 二O一二年十一月

目录 摘要 (3) 一.实验目的 (4) 二.实验原理 (4) 1 实验基本原理 (4) 2.1继电器结构原理图 (5) 2.2继电器工作原理 (5) 3.1 8255A组成 (6) 3.2 8255A结构框图 (7) 3.3 8255A工作方式 (7) 三.实验内容 (11) 四.程序设计 (12) 4.1程序流程图 (12) 4.2程序代码 (12) 五.实验小结........................................................ 错误!未定义书签。 六.参考文献 ......................................................... 错误!未定义书签。

摘要 现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件,另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全。继电器便能完成这一桥梁作用。 本课程设计主要采用了控制继电器和8255A芯片来完成。电路的控制端为高电平时,继电器工作常开触点吸合,连触点的LED灯被点亮。当控制端为低电平时,继电器不工作。执行时,对应的LED将随继电器的开关而亮灭。 关键词:控制继电器 8255A芯片

一.实验目的 1、进一步熟悉汇编语言的设计编写 2、掌握继电器控制的基本原理 3、掌握继电器控制编程方法 4、掌握8255芯片的应用 二.实验原理 1、利用8255A PA0输出高低电平,控制继电器的开合,以实现对外部装置的控制。 硬件线路原理图接线如下: 2、继电器 在现代工业中,人员和电子电路安全保障一直是首要考虑的问题,尤其在一些高危恶劣环境下,如高温高压等,如何在保障操作人员和电子电路安全的前提下对电路进行良好地控制便成为了工业进步不可回避的问题。一方面要使电子电路的控制信号能够控制电气电路的执行元件,另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全,符合这种需求的元件便是继电器。 控制继电器是一种自动电子控制器件,它适用于远距离接通和分断交、直流小容量控制电路, 它具有控制系统和被控制系统,通常应用于自动控制电路中,

微机原理实验报告

微 机 原 理 实 验 报 告 班级: 指导老师:学号: 姓名:

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 图3-1

四、参考程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,[SI] MOV BL,[DI] ADC AL,BL

微机原理与接口技术实验报告

微机原理与接口技术》 上机报告 学院:机电学院指导教师:胡勇学号:631424210229 姓名:鞠其林

实验一初级程序的编写与调试实验 、实验目的 1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序. 2、深入了解数据在存储器中的存取方法, 及堆栈中数据的压入与弹出 3、掌握各种寻址方法以及简单指令的执行过程. 二、实验内容 1、设堆栈指针SP=2000H,AX=3000H,BX=5000H请, 编一程序段将AX的内容和BX 的内容进行交换. 请用堆栈作为两寄存器交换内容的中间存储单元, 用DEBUG调试程序进行汇编与调试. 程序: MOV AX,3000 MOV BX,5000 MOV SP,2000 PUSH AX PUSH BX POP AX POP BX HLT

2、设AX=0002H,编一个程序段将AX的内容乘10, 要求用移位的方法完成程序: MOV AX,0002 MOV BX,AX MOV CL,2 SHL AX,CL ADD AX,BX MOV CL,1 SHL AX,CL HLT

三、心得体会 从这个程序的编辑过程中我感受到了汇编语言的强大,很直观的就可以读懂程 序的含义,但代码比较难记,而且语法严谨,我调试的过程中犯了一点错误, 修改的次数较多,希望我以后可以不再犯同样的错误,也是因为我练的比较的 少,还很生疏,我以后一定多加练习,把汇编学好 实验二 加法及判断程序的编写与调试 、实验目的 1、熟练掌握编写汇编语言源程序的基本方法和基本框架 2、学会编写顺序结构 , 分支结构和循环结构的汇编程序

3、掌握程序中数据的产生与输入输出的方法. 二、实验内容 1、用汇编语言编写一个加法程序: 1325+9839 请用ASCII 码的形式将加数与被加数存放在数据区DATA1和DATA2中, 并将相加结果显示输出. 程序: DATA SEGMENT DATA1 DB '5','2','3','1' DATA2 DB '9','3','8','9' DATA ENDS STACK SEGMENT PARA STACK 'STACK' DB 200 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX LEA SI,DATA1 LEA DI,DATA2 MOV CX,4 MOV AH,0 NEXT: MOV AL,[SI] ADC AL,[DI] ADC AL,AH MOV AH,0 AAA ADD AL,30H MOV [DI],AL INC DI INC SI LOOP NEXT MOV CX,5 ADD AH,30H MOV [DI],AH NEXT1:MOV DL,[DI] MOV AH,02 INT 21H DEC DI

微机原理第1、2次实验

微机原理第1、2次实验

微机原理第1、2次实验 3.1 IO口读写实验(245、373) 1、实验内容 利用板上集成电路上的资源,扩展一片 74HC245,用来读入开关状态;扩展一片 74HC373,用来作来输出口,控制 8 个 LED 灯。 2、实验目的 (1)了解CPU 常用的端口连接总线的方法。 (2)掌握74HC245、74HC373 进行数据读入与输出。 3、实验电路

4、实验流程图 5、实验说明 一般情况下,CPU 的总线会挂有很多器件,如何使这些器件不造成冲突,这就要使用一些总线隔离器件,例如 74HC245、74HC373。74HC245 是三态总线收发器,本实验用它做输入,片选地址为0D0000H-0DFFFFH。就是用于读入开关值。74HC373 是数据锁存芯片,通过它作数据的锁住输出。 6、发现的问题 (1)实验指导书中译码器上的连线与代码中的地址不对应,在CPU的输出状态时译码器的Y0为低电平,其他位为高电平,应将原先连接在Y9的线改接到Y0上。如图:

如果不想改电路,把代码中的OUT373 EQU 8000H改为OUT373 EQU 0E000H,也能使CPU在输出状态时Y9呈现低电平。如图: (2)元件与元件直接必须用导线相连,两个元件挨在一起是不算作导通的

否则会出现比如下面这种即使两端有电势差LED灯也不亮的情况 第2次实验,将LED灯修改为七段数码管 如图,只需将右边改为下图这样即可

添加三极管的目的是为了在8个开关都闭合(向74HC245输入低电平)的情况下,使七段数码管的第一根管脚断路,七段数码管不发光,避免了在8个开关都闭合时显示数字8。

8086微机原理及接口技术实验教程(2017)

8086微机原理及接口技术 实验教程 合肥工业大学电气与自动化系

1 实验一 系统认识与存储器扩展实验 1.1 TD-PITE 实验装置简介 1.1 TD-PITE 功能特点 系统以具有PC104总线接口的i386EX 单板机和一个开放的微机接口教学实验平台,通过PC104总线组合插接方式构成的高性能80x86微机原理与接口技术教学实验系统,全面支持80x86实模式和保护模式的16/32位微机原理及接口技术的实验教学。开放的80386系统总线,不仅可以进行各种接口实验的学习,还可以进行基于386微处理器的嵌入式应用开发。I386EX 是一款嵌入式微处理器,其在Intel 386SX 微处理器的基础上集成了丰富的外围接口(如8259、8254、16C450和8237等),内部为32位总线,外部为16位数据总线,具有64MB 的寻址能力,保持与标准的32位80386CPU 相同的指令系统,可完全支持80X86微机原理及接口技术课程的教学,使教学内容与主流技术相一致,达到学以致用的目的。 系统提供开放的386系统总线,使用户可以充分学习并掌握系统总线的特点及操作方法。实验平台上提供丰富的实验单元,如中断控制器8259、DMA 控制器8237、定时/计数器8254、并行接口8255、串行通信接口8251、SRAM 、ADC0809、DAC0832、单次脉冲、键盘扫描及数码管显示、开关输入及发光管显示、电子发声器、点阵LED 显示、图形LCD 显示、步进电机、直流电机及温度控制单元电路。 1.2 TD-PITE 系统构成 TD-PITE 是一套80X86微机原理及接口技术实验教学系统,其主要系统构成如表1.1 所示。 表1.1 TD-PITE 系统构成

微机原理实验二实验报告

实验2. 分支程序设计 一、实验目的 ⒈掌握条件跳转指令的使用方法。 ⒉学会分支结构程序的编程方法。 ⒊利用DEBUG调试程序查看F标志寄存器值并分析条件跳转指令的跳转和F标志寄存器值间的关系。 二、实验要求 ⒈编写程序并上机调试,记录运行结果。 ⒉用DEBUG调试程序调试所编程序,查看并记录每条指令内存单元地址及执行结果(包括F标志寄存各位值。) ⒊注意观察并记录每条指令执行后CS和IP寄存器值变化情况,以加深对分支程序的概念的理解。 三、实验内容 ⒈编写程序并调试运行。要求:从键盘上接收一个按键,如果按键是小写字母,则显示输出L;是大写字母,则显示输出U;如果是数字,则显示输出N;都不是,则显示输出*。 源程序代码: CODES SEGMENT ASSUME CS:CODES START: MOV AH ,01H INT 21H CMP AL,'0' JB GO1 CMP AL,'9' JNG GO2 CMP AL,'A' JB GO1 CMP AL,'Z' JNG GO3 CMP AL,'a' JB GO1 CMP AL,'z' JNG GO4 GO1: MOV DL,'*' JMP NEXT GO2: MOV DL,'N' JMP NEXT

GO3: MOV DL,'U' JMP NEXT GO4: MOV DL,'L' JMP NEXT NEXT:MOV AH,2 INT 21H MOV AH,4CH INT 21H CODES ENDS END START 运行程序截图:(这里使用了DOS模拟集成平台) 图1 数字显示 图2小写字母显示 图3 大写字母显示 四、实验总结 本次实验掌握了条件跳转指令的使用方法。学会分支结构程序的编程方法。同时,刚开始由于未注意到分支分界处的细节问题而引发错误,更加深了对于编写分支程序要注意分界点的认识。 所犯错误还有把数字‘0’打成了字母‘o’。

相关文档
最新文档