搜档网
当前位置:搜档网 › 微机原理实验

微机原理实验

微机原理实验
微机原理实验

实验四数据区移动

实验目的

掌握RAM中的数据操作。

实验内容

把4100H源RAM区首地址内的16字节数据传送到4200H目标RAM 区。

设计思想

程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。源数据块和目的数据块在存储器中可能有三种情况,如下图:

对于两个数据分离的情况,如图(a),数据的传送从数据块的首地址开始,或者从数据块的末地址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。

可以得出如下结论:当源数据首址大于目的块首址时,从数据块首址开始传送数据。当源数据首址小于目的块首址时,从数据块末址开始传送数据。

实验流程

实验步骤

调试运行3060程序,检查4100H~410FH中内容是否和4200H~420FH中内容完全一致。

实验程序

;-------------------------- 数据区移动---------------------------

CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE

ORG 3060H

S4: MOV CX,0010H

MOV SI,4100H

MOV DI,4200H

CMP SI,DI

JA A42

ADD SI,CX

ADD DI,CX

A41: DEC SI

DEC DI

MOV AL,[SI]

MOV [DI],AL

LOOP A41

JMP $

A42: MOV AL,[SI]

MOV [DI],AL

INC SI

INC DI

LOOP A42

JMP $

CODE ENDS

END S4

实验五数据排序实验

实验目的

熟悉8088指令系统,掌握程序设计方法。

实验内容

编写并调试一个排序子程序,其方法为用冒泡法将RAM中的几个单元字节无符号的正整数,按从小到大的次序重新排列。

实验步骤

⑴从第一个数开始,依次把相邻的两个数进行比较,即第(N-2)个数与第(N-1)个数比较,第(N-1)个数与N个数比较等等;若第(N-1)个数不大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。此时。N个数中的最小数将被排在N个数的最后。

⑵对剩下的(N-1)个数重复第⑴步,找到(N-1)个数中的最小数。

⑶重复第⑵步,直到N个数全部排序好为止。

实验步骤

在4000H~400AH中通过键盘命令输入不等的10个数,运行本实验程序后检查4000H~400AH中内容是否按从大到小排列。在和PC机联机时,用连续单步方式,可很清楚地看出数据排序时数据移动变化情况。实验流程

思考

编一程序把4000H~400AH中内容按从小到大排列。实验程序

;--------------------------- 数据排序实验--------------------CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE

ORG 3090H

S5: MOV CX,000AH

A53: MOV BX,4000H

PUSH CX

A52: MOV AX,[BX]

CMP AL,AH

JC A51

A54: INC BX

LOOP A52

POP CX

LOOP A53

JMP $

A51: XCHG AL,AH

MOV [BX],AX

JMP A54

CODE ENDS

END S5

实验六找“零”个数

实验目的

熟悉汇编语言编程,掌握串操作指令的使用。

实验内容

在4000H~400FH中查出有几个字节是零,把个数放在4100H中。实验流程

实验步骤

在4000H~400FH的几个单元中填入零,运行本程序后检查4100H

中是几个单元数。

实验思考

修改程序,查找其他内容。

实验程序

;------------------------- 找"零"个数-------------------

CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE

ORG 30B0H

S6: MOV BX,4100H ;COUNT

MOV AX,0000

MOV [BX],AX

MOV CX,0010H

MOV DI,4000H

CLD

A62: SCASB

JZ A61

A63: LOOP A62

JMP $

A61: INC BYTE PTR [BX]

JMP A63

CODE ENDS

END S6

实验七多分支程序

实验目的

掌握汇编语言的编程,熟悉程序散转的设计方法。

实验内容

多分支结构相当于一个多路开关,在程序设计中通常是根据某寄存器或某单元的内容进行程序转移。在设计多分支转移程序时,如果分支太多,则平均转移速度太慢,本实验采用转移地址表实现多分支转移,可以提高平均转移速度。

编写程序,根据送入的数据转移运行。

实验流程

编程提示

字形口地址:FFDCH 字位口地址:FFDDH

LED数码管0~F的字行代码:

0123456789A B C D E F灭C0F9A4B0999282F880908883C6A1868E FF

LED数码管的字位代码:

字位123456

代码201008040201

实验连线

连接位置1连接位置2

138 A , B, C A5, A6, A7

A1502第11脚

GND02第12脚

138 G02第13脚

8255 CS138 Y3

8255 PA字形口

8255 PB字位口

8255 D0…..D7系统数据总线D0…..D7

实验步骤

在4000H中分次输入00,01,02……0F,每次运行程序后观察数码管上数字循环情况。

实验程序

;------------------------ 多分支程序设计----------------------

CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE

ORG 3130H

S8: JMP A81

TAB DW LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7

DW LED8,LED9,LEDA,LEDB,LEDC,LEDD,LEDE,LEDF

A81: MOV BX,OFFSET TAB

MOV SI,4000H

MOV AL,[SI]

AND AL,0FH

SHL AL,1

MOV AH,00H

ADD BX,AX

JMP [BX]

LED0: MOV AL,0C0H

JMP LEDX

LED1: MOV AL,0F9H

JMP LEDX

LED2: MOV AL,0A4H

JMP LEDX

LED3: MOV AL,0B0H

JMP LEDX

LED4: MOV AL,99H

JMP LEDX

LED5: MOV AL,92H

JMP LEDX

LED6: MOV AL,82H

JMP LEDX

LED7: MOV AL,0F8H

JMP LEDX

LED8: MOV AL,80H

JMP LEDX

LED9: MOV AL,90H

JMP LEDX

LEDA: MOV AL,88H

JMP LEDX

LEDB: MOV AL,83H

JMP LEDX

LEDC: MOV AL,0C6H

JMP LEDX

LEDD: MOV AL,0A1H

JMP LEDX

LEDE: MOV AL,86H

JMP LEDX

LEDF: MOV AL,8EH

JMP LEDX

LEDX: MOV DX,0FFDCH

OUT DX,AL

MOV CL,20H

MOV DX,0FFDDH

LEDX1: MOV AL,CL

OUT DX,AL

PUSH CX

CALL DLL

POP CX

ROR CL,1

JMP LEDX1

DLL: MOV BX,0020H

DL1: DEC BX

CMP BX,0000

JZ DL3

MOV CX,04FFH

LOOP $

JMP DL1

DL3: RET

CODE ENDS

END S8

实验八显示子程序实验目的

熟悉LED显示器的显示过程。

实验内容

编写程序,依次闪动显示“Dais 88”“good”。

实验流程

实验连线

连接位置1连接位置2

138 A , B, C A5, A6, A7

A1502第11脚

GND02第12脚

138 G02第13脚

8255 CS138 Y3

8255 PA字形口

8255 PB字位口

8255 D0…..D7系统数据总线D0…..D7

实验步骤

连续运行31E0h程序,观察数码管显示情况。

实验程序

------------------------- 显示子程序----------------------------

CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE

ORG 31E0H

S9: JMP START9

ZXK EQU 0FFDCH

ZWK EQU 0FFDDH

LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H BUF DB ?,?,?,?,?,?

START9: MOV CX,0005H ;"dais 88" ON/OFFLED,COUNT A90: PUSH CX

A91: MOV BX,OFFSET BUF

MOV AX,0A0DH

MOV [BX],AX

ADD BX,2

MOV AX,0501H

MOV [BX],AX

ADD BX,2

MOV AX,0808H

MOV [BX],AX

MOV CX,0050H ;ONLED,TIME

A92: PUSH CX

CALL DIS

POP CX

LOOP A92

MOV CX,0003H

MOV AX,1010H

MOV BX,OFFSET BUF

A93: MOV [BX],AX

INC BX

INC BX

LOOP A93

MOV CX,0020H ;OFFSET,TIME

A94: PUSH CX

CALL DIS

POP CX

LOOP A94

POP CX

LOOP A90

;-------------------

MOV CX,0005H ;"good" ON/OFFLED-COUNT

A99: PUSH CX

A95: MOV BX,OFFSET BUF

MOV AX,0009H

ADD BX,2

MOV AX,0D00H

MOV [BX],AX

ADD BX,2

MOV AX,1010H

MOV [BX],AX

MOV CX,0050H ;ONLED-TIME A96: PUSH CX

CALL DIS

POP CX

LOOP A96

MOV CX,0003H

MOV AX,1010H

MOV BX,OFFSET BUF

A97: MOV [BX],AX

INC BX

INC BX

LOOP A97

MOV CX,0020H ;OFFSET-TIME A98: PUSH CX

CALL DIS

POP CX

LOOP A98

POP CX

LOOP A99

JMP START9

;--------------------------

DIS: MOV CL,20H

MOV BX,OFFSET BUF

DIS1: MOV AL,[BX]

PUSH BX

MOV BX,OFFSET LED

XLAT

POP BX

MOV DX,ZXK

OUT DX,AL

MOV DX,ZWK

OUT DX,AL

PUSH CX

MOV CX,0100H

DELAY: LOOP $

POP CX

CMP CL,01H

JZ EXIT

INC BX

SHR CL,1

JMP DIS1

EXIT: MOV AL,00H

MOV DX,ZWK

OUT DX,AL

RET

CODE ENDS

END S9

实验九 8255并行口实验:PA口控制PB口实验目的

⑴掌握8255A和微机接口方法。

⑵掌握8255A的工作方式和编程原理。

实验内容

用8255 PA作开关量输入口,PB作输出口。

程序流程

实验电路

编程提示

8255A芯片简介

8255A可编程外围接口芯片是Intel公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V电源供电,能在以下三种方式下工作:

方式0:基本输入/输出方式

方式1:选通输入/输出方式

方式2:双向选通工作方式

使8255A端口A工作在方式0并作为输入口,读取K1—K8八个开关量,送PB口显示。PB口工作在方式0作为输出口。

实验步骤

⑴按实验电路图连接线路:

①8255A芯片A口的AP0~PA7依次和开关量输入插孔K1~K8相连。

②8255A芯片B口的AB0~PB7依次接L1~L8

⑵运行实验程序。

在系统处“P.”状态时,输入32E0,按EXEC键,

拨动K1~K8、L1~L8会跟着亮灭。

实验程序

;----------------- 8255A并行口实验 PA输入,PB输出-------------

CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE

ORG 32E0H

PA EQU 0FFD8H

PB EQU 0FFD9H

PC EQU 0FFDAH

PCTL EQU 0FFDBH

H2: MOV DX,PCTL

MOV AL,90H

OUT DX,AL

P2: MOV DX,PA

IN AL,DX

INC DX

OUT DX,AL

JMP P2

CODE ENDS

END H2

实验十 8259中断控制器实验

实验目的

⑴掌握8259中断控制器的接口方法。

⑵掌握8259中断控制器的应用编程。

实验内容

编制程序,利用8259芯片的IR作为中断源,产生单一中断,系统显示中断号“7”。

程序流程

实验电路

编程提示

⑴8259芯片介绍

中断控制器8259A是专业性为控制优先级中断设计的芯片。它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

01234567

20~23H24~27H28~2BH2C~2FH30~33H34~37H38~3BH3C~3FH

⑵本实验中使用7号中断源IR7,“SP”插孔和IR7相连,中断方式为边沿触发方式,每按二次AN按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1个字符“7”,满“7”次后显示“P.”继续等待中断。

实验步骤

⑴按实验电路图连接线路:

对于后缀名含有“H”的机型,按实验电路图连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与位于地址线A0引出孔所在位置下方的使能控制输出端G作对应连接,该端的寻址范围为0FFE0H~0FFFFH。

①“SP”插孔和8259 7号中断IR7插孔相连,“SP”端初始为低电平。

②对于后缀名含有“H”的机型,8259的CS端连138译码器的Y0孔。

③将8259的单元总线接口D0~D7,用8芯排线或8芯扁平线与数据总线单元D0~D7任一接口相连。

⑵运行实验程序

在系统处于命令提示符“P.”状态下,输入3400,按EXEC键显

示“P.”。

⑶按动AN按钮,LED数码管从最高位开始依次显示“7”,显示满六位后,最高位显示“P.”继续等待中断。

实验程序

------------------- 8259单级中断控制器实验-------------------

CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE

ORG 3400H

H8: JMP P8259

ZXK EQU 0FFDCH

ZWK EQU 0FFDDH

LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H

BUF DB ?,?,?,?,?,?

Port0 EQU 0FFE0H

Port1 EQU 0FFE1H

P8259: CLI

CALL WP ;初始化显示“P.”

MOV AX,OFFSET INT8259

MOV BX,003CH

MOV [BX],AX

MOV BX,003EH

MOV AX,0000H

MOV [BX],AX

CALL FOR8259

mov si,0000h

STI

CON8: CALL DIS

JMP CON8

;------------------------------------

INT8259:cli

MOV BX,OFFSET BUF

MOV BYTE PTR [BX+SI],07H

INC SI

CMP SI,0007H

JZ X59

XX59: MOV AL,20H

MOV DX,Port0

OUT DX,AL

mov cx,0050h

xxx59: push cx

call dis

pop cx

loop xxx59

pop cx

mov cx,3438h

push cx

STI

IRET

X59: MOV SI,0000H

CALL WP

JMP XX59

;============================== FOR8259:MOV AL,13H

MOV DX,Port0

OUT DX,AL

MOV AL,08H

MOV DX,Port1

OUT DX,AL

MOV AL,09H

OUT DX,AL

MOV AL,7FH ;IRQ7

OUT DX,AL

RET

;---------------------------

WP: MOV BUF,11H ;初始化显示“P.” MOV BUF+1,10H

MOV BUF+2,10H

MOV BUF+3,10H

MOV BUF+4,10H

MOV BUF+5,10H

RET

;--------------------------------

DIS: MOV CL,20H

MOV BX,OFFSET BUF

DIS1: MOV AL,[BX]

PUSH BX

MOV BX,OFFSET LED

XLAT

POP BX

MOV DX,ZXK

OUT DX,AL

MOV AL,CL

MOV DX,ZWK

OUT DX,AL

PUSH CX

MOV CX,0100H

DELAY: LOOP $

POP CX

CMP CL,01H

JZ EXIT

INC BX

SHR CL,1

JMP DIS1

EXIT: MOV AL,00H

MOV DX,ZWK

OUT DX,AL

RET

;--------------------------

CODE ENDS

END H8

微机原理及应用实验(题目)

微机原理及应用实验 实验一开发环境的使用 一、实验目的 掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部RAM内容的查看、修改;PSW中个状态位的查看;机器码的查看;程序的各种运行方式,如单步执行、连续执行,断点的设置。二、实验内容 在伟福开发环境中编辑、汇编、执行一段汇编语言程序,把单片机片内的 30H~7FH 单元清零。 三、实验设备 PC机一台。 四、实验步骤 用连续或者单步的方式运行程序,检查30H-7FH 执行前后的内容变化。五、实验思考 1.如果需把30H-7FH 的内容改为55H,如何修改程序? 2.如何把128B的用户RAM全部清零? 六、程序清单 文件名称:CLEAR.ASM ORG 0000H CLEAR: MOV R0,#30H ;30H 送R0寄存器 MOV R6,#50H ;50H 送R6寄存器(用作计数器) CLR1: MOV A,#00H ;00 送累加器A MOV @R0,A ;00 送到30H-7FH 单元 INC R0 ;R0 加1 DJNZ R6,CLR1 ;不到50H个字节,继续 WAIT: LJMP WAIT END 实验二数据传送 一、实验目的 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H 中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、实验设备 PC机一台。

南邮 微机实验

(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

微机原理期末考试考试卷及答案

的数据线为16位,地址线为20位,I/O口使用16位地址线。 2.在某进制的运算中7×3=33,则7×5=_55。 3.用8位二进制数表示整数时,十进制数(-128)的补码为__。原码为无,反码为无。3.8086内部寄存器长度为16位,通用寄存器有8个,段寄存器有4个。 4.8086偶存储体的选片信号是A0,奇存储体的选片信号是BHE 。 5.MOV AX,[BX+SI]的源操作数是基址变址寻址方式,目的操作数是寄存器寻址方式。6.8086可以指向堆栈的指针寄存器有bp和sp。 7.程序中段定义结束的伪指令是ENDS,子程序定义结束的伪指令是ENDP。 8.EEPROM的擦除方法为点擦除. 9.下列指令段经汇编后,DATA所代表的偏移地址为_100 CH__。 & ORG 1000H STROE DB 12 DUP() DATA DB 05H,06H,07H,08H 1. 8086/8088在不考虑段跨越情况下,DI寄存器给出的偏移地址位于_C__。 A. 仅DS段 B. DS或SS段 C. DS或ES段 D. DS或CS段 2. 下列指令中格式错误的是___A___。 A. SHL AL,CX B. XCHG AL,BL C. MOV BX,[SI] D. AND AX,BX 3. 设(20010H)=3FH,(20011H)=B2H,执行下列指令段后,BX=____B__。 MOV AX,2000H " MOV DS,AX MOV BX,[0010H] A. B2B2H B. B23FH C. 3F3FH D. 3FB2H 4. 若SP=0124H,SS=3300H,在执行INT 60H这条指令后,堆栈栈顶的物理地址为___D___。 A. 3311CH B. 33120H C. 33122H D. 3311EH 5. 下列指令中格式错误的是_C__。 A. MOV AX,357AH[BX][DI] B. OUT DX,AL C. LEA AX,50H[BX][BP] D. RCR BX,1 6. 下列指令中允许寻址范围最大的是_D__。 A. JNZ NEXT B. LOOP NEXT ¥ C. JMP SHORT PTR NEXT D. CALL NEAR PTR NEXT 7. 8086/8088不属于BIU部分的寄存器是__D____。 A. IP B. ES C. DS D. SP 8088最大模式比最小模式在结构上至少应增加___B_。 A. 中断优先级控制器 B. 总线控制器 C. 数据驱动器 D. 地址锁存器 9. 8086在存取存贮器中以偶地址为起始地址的字时,M/IO、BHE、A0的状态分别是____D__。 A. 0,0,1 B. 1,0,1 C. 1,1,0 D. 1,0,0 10. 一个半导体存贮芯片的引脚有 A13~A0,D3~D0,WE,OE,CS,VCC,GND等,该芯片存贮容量为____C__。 A. 8K×8 B. 8K×4 C. 16K×4 D. 16K×8 !

微机原理及应用实验

实验报告1 实验项目名称:I/O地址译码;简单并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握I/O地址译码电路的工作原理,简单并行接口的工作原理及使用方法。 二、预备知识: 输入、输出接口的基本概念,接口芯片的(端口)地址分配原则,了解译码器工作原理及相应逻辑表达式,熟悉所用集成电路的引线位置及各引线用途;74LS245、74LS373的特性及作用。 三、实验内容245输入373输出 使用Protues仿真软件制作如下电路图,使用EMU8086编译软件编译源程序,生成可执行文件(nn . exe),在Protues仿真软件中加载程序并运行,分析结果。 编程实现:读8个开关的状态,根据输入信号控制8个发光二极管的亮灭。 图1-1 245输入373输出 四、程序清单

五、实验结果 六、结果分析 七、思考题: 1、如果用74LS373作输入接口,是否可行?说明原因;用74LS245作输出接口,是否可行?说明原因。

实验报告2 实验项目名称:可编程定时器/计数器;可编程并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握8253的基本工作原理和编程应用方法。掌握8255的工作原理及使用方法。 二、预备知识: 8253的结构、引脚、控制字,工作方式及各种方式的初始化编程及应用。 8255的内部结构、引脚、编程控制字,工作方式0、1、2的区别,各种方式的初始化编程及应用。 三、实验内容: ⑴8253输出方波 利用8253的通道0和通道1,设计产生频率为1Hz的方波。设通道0的输入时钟频率为2MHz,8253的端口地址为40H,42H,44H,46H。通道0的输入时钟周期0.5μs,其最大定时时间为:0.5μs×65536 = 32.768ms,要产生频率为1Hz(周期= 1s)的方波,利用;一个通道无法实现。可用多个通道级连的方法,将通道0的输出OUT0作通道1的输入时钟信号。设通道0工作在方式2(频率发生器),输出脉冲周期= 10 ms,则通道0的计数值为20000(16位二进制)。周期为4 ms的脉冲作通道1的输入时钟,要求输出端OUT1输出方波且周期为1s,则通道1工作在方式3(方波发生器),计数值为100(8位;二进制)。硬件连接如图2-1。

微机原理实验报告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、统计出某数组中相邻两数之间符号变化的次数DATA SEGMENT ARRAY DB 20 DUP (?) NUM DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA STARTUP:LEA SI , ARRAY; MOV AL ,[SI] MOV BL,0 MOV CX,19 AGAIN: INC SI XOR AL ,[SI] J NS NEXT INC BL NEXT: MOV AL ,[SI] LOOP AGAIN MOV NUM,BL MOV AH ,4CH INT 21H CODE ENDS END STARTUP 2、乘法指令实现32位二进制数与16位二进制数相乘MODEL SMALL .8086 .DATA N1 DW 1234H N2 DW 5678H N3 DW 4444H M1 DW 0 M2 DW 0 M3 DW 0 CODE . STARTUP MOV AX ,N2 MUL N3 MOV M3,AX MOV M2,DX MOV AX,N3 MUL N1 ADD M2,AX ADC M1,DX .EXIT

END 3、设有3个自变量的变量名及其内容如下: V AR1 3C46H , V AR2 F678H , V AR3 0059H 设计一个数据段定义这三个变量及其地址表变量DDRTABL DATA SEGMENT V AR1 DW 3C46H V AR2 DW F678H V AR3 DW 0059H ADDRTABL DD V AR1 DD V AR2 DD V AR3 DATA ENDS 4、设有一个符号数组,共M个,求其中最大的数,如需要求绝对值最大应如何修改,如为无符号数,程序如何修改。 DATA SEGMENT M EQU 10 DAT DW M DUP(?) MAX DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA STARUP : MOV AX ,DAT MOV MAX ,AX CLD LEA SI ,DAT MOV CX ,M L1: LODSW CMP AX ,MAX JNG LAB MOV MAX ,AX LAB : LOOP L1 MOV AH ,4CH INT 21H CODE ENDS END STARTUP 绝对值修改:需要在LODSW插入 AND AX ,AX JNS LAB1 NEG AX LAB1: CMP AX ,MAX 程序初始化时MAX应送入0

微机原理实验报告软件实验1-4

微机原理实验报告 学院:算机科学与软件教育学院 1. 掌握存储器读写方法 2. 了解存储器的块操作方法 二、实验原理 存储器读写和块操作 三、实验设备仪器及材料 计算机,WA VE 6000软件 四、实验过程 S1.asm 代码流程图 data segment Block db 256 dup(55h) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov bx, offset Block ; 起始地址 mov cx, 256 ; 清256 字节Again: mov [bx], byte ptr 0 inc bx ; 地址+1 Loop Again ; 记数减一jmp $ ;死循环code ends end start

五、实验步骤 (1) 进入Wave6000,输入程序并检查,保存程序。 (2) “编译”程序。 (3) “全速执行”程序。 (4) “暂停”程序运行,在“数据窗口(MEMOREY)”查看0400H起始的单元内容,并记录。 (5) 在指令“jmp $”处设断点。“全速执行”程序。 (6) 在“数据窗口(MEMOREY)”查看0400H起始的单元内容,记录并分析实验结果。 六、实验结果及总结 运行前:运行后: 2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH)? 总结:通过本实验,我了解到单片机读写存储器的读写方法,同时也了解到单片机编程,调试方法。学会内存的移动方法,也加深对存储器读写的认识。

微机原理实验报告 学院:算机科学与软件教育学院 实验 课程 名 微机原理实验成绩实验 项目名称实验二、二进制到BCD码转换 指导老 师 1. 了解BCD值和ASCII值的区别。 2. 了解如何将BCD值转换成ASCII值。 3. 了解如何查表进行数值转换及快速计算。 二、实验原理 ASCII码表 三、实验设备仪器及材料 计算机,WA VE 6000软件 data segment Result db 3 dup(?) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov ax, 123 mov cl, 100 div cl mov Result, al ; 除以 100, 得百位数 mov al, ah mov ah, 0 mov cl, 10 div cl mov Result+1, al ; 余数除以 10, 得十位数 mov Result+2, ah ; 余数为个位 数 jmp $ code ends end start 代码流程图

微机原理上机实验(一)实验报告数据传输传送实验

微机原理上机实验(一)实验报告 主题:数据传送 一、实验目的 熟悉星研集成环境软件的使用方法。熟悉Borland公司的TASM编译器 熟悉8086汇编指令,能自己编写简单的程序,掌握数据传输的方法。 二、实验内容 1、熟悉星研集成环境软件。 2、编写程序,实现数据段的传送、校验。 三、实验代码 _STACK SEGMENT STACK DW 100 DUP() _STACK ENDS DATA SEGMENT DATA ENDS CODE SEGMENT START PROC NEAR ASSUME CS:CODE, DS:DATA, SS:_STACK MOV AX, DATA ;将数据段的地址存入AX寄存器。AX=004DH MOV DS,AX ;对DS段寄存器赋值。DS=004DH MOV ES,AX ;对ES段寄存器赋值。ES=004DH NOP ;空指令

MOV CX,100H ;把100H送到CX寄存器。CX=0100H MOV SI,3000H ;把3000H送到SI寄存器。SI=3000H MOV DI,6000H ;把6000H送到DI寄存器。DI=6000H CALL Move ;调用Move子程序 MOV CX,100H ;把100H送到CX寄存器。CX=0100H MOV SI,3000H ;把3000H送到SI寄存器。SI=3000H MOV DI,6000H ;把6000H送到DI寄存器。DI=6000H CLD ;将DF标志位置0。设置SI、DI为递增移动,DF=0 REPE CMPSB ;比较[SI]和[DI],CX减1,ZF=0或CX=0跳出 ;若ZF=0或CX=0不成立,则继续比较。SI和DI持续递增 1 JNE ERROR ;若ZF=0,跳到ERROR子程序 TRUE: JMP $ ;跳到目前地址 ERROR: JMP $ ;跳到目前地址 Move PROC NEAR ;Move子程序 CLD ;将DF标志位置0。设置SI、DI为递增移动。DF=0 CMP SI,DI ;比较SI、DICF=SF=PF=1,仅有该三个标志位变化JZ Return ;如果相等,跳到Return JNB Move1 ;如果SI大于等于DI,跳到Move1 ADD SI,CX ;SI=SI+CX。SI=3100H DEC SI ;SI减1。SI=30FFH

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

《微型计算机原理与接口技术》 上机实验 学院:电子科学与工程 专业:电磁场与无线技术 姓名:陈秀慧 课程号: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

微机原理试题及答案(考试必备)

一、选择题(20分,在每小题的4个备选答案中选出一个正确的答案编号填写在该题空白处,每题2分) 1.指令MOV DX,[BX]的寻址方式是 D 。 (A)立即寻址(B)直接寻址(C)寄存器寻址(D)寄存器间接寻址2.若AL的内容为3FH,执行SHL AL,1指令后,AL的内容为 A 。 (A)7EH (B)1FH (C)9FH (D)7FH 解析:shl al ,1 即目的操作数各位左移一次,移动一次,相当于将目的操作数乘以2。3fh=63 63*2=126 126=7eh 故选A 3.属于在工作中需定时刷新的存储器的芯片是 B 。 (A)SRAM (B)DRAM (C)EEPROM (D)EPROM 4.某EPROM芯片上有19条地址线A 0~A 18 ,它的容量为 C 。 (A)128K (B)256K (C)512K (D)1024K 5.8086/8088CPU的SP寄存器是多少位的寄存器 B 。 (A)8位(B)16位(C)24位(D)32位 6.在STOSB指令执行的时候,隐含着寄存器的内容作为操作数的偏移地址, 该寄存器是 D 。 (A)SP (B)BX (C)SI (D)DI 解析:stos数据串存储指令功能:将累加器al或ah中的一个字或字节,传送到附加段中以di为目标指针的目的串中,同时修改di,以指向串中的下一个单元。 7.8255工作在方式0时,下面哪种说法不正确 C 。 (A)A口输入无锁存能力(B)A、B口输出有锁存能力 (C)C口输入有锁存能力(D)A、B、C三个口输出均有锁存能力 解析:对于方式0,规定输出信号可以被锁存,输入不能锁存 8.采用DMA方式来实现输入输出是因为它 A 。 (A)速度最快(B)CPU可不参与操作(C)实现起来比较容易(D)能对突发事件做出实时响应 9.工作在最小模式下,8086/8088CPU芯片中,将地址信号锁存的信号是 C 。 (A)DT/R (B)DEN (C)ALE (D)AEN 10.在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器是用寄存 器 C 。 (A)AX (B)BX (C)CX (D)DX 解析:loop:循环指令。指令执行前必须事先见重复次数放在cx寄存器中,每执行一次loop指令,cx自动减1。 二、填空题(每小题2分,共10分) 1.两个无符号数相等,该两数相减后ZF标志= 1 。解析:zf: 全零标志位。本次运算结果为0时,zf=1,否则zf=0。 2.执行LODSB后,SI的内容较该指令执行前增加1,说明DF =。 3.DMA控制器8237共有个相互独立的DMA通道。 4.8086/8088断点中断的向量码是 03H 。 5.利用8253产生对称的方波,应用其工作方式 3 。解析:8253 的工作方式3为方波发生器。

微机原理实验程序

实验一两个多位十进制数相减实验 一、实验要求:将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序 存放在以DATAI和DATA2为首的5个内存单元中(低位在前>,结果送回 DATAI处。 二、实验目的:1.学习数据传送和算术运算指令的用法。 2.熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 三、实验步骤:连好实验箱后接通电源,打开上位机软件88TE进入软件调试界面: 点击“文件\打开”文件路径为C: \88TE\cai\asm\Ruanjian\Rjexp1.asm。具体操作如图所示: b5E2RGbCAP

点击编译连接生成可执行的exe文件。 通过单步运行调试程序,打开寄存器查看其变量变化情况。 四、实验程序框图: 五、实验程序:

文件路径为C:\88TE\cai\asm\Ruanjian\Rjexp1.asm DATA SEGMENT DATA1 DB 33H,39H,31H,37H,38H 。第一个数据<作为被减数)DATA2 DB 36H,35H,30H,38H,32H 。第二个数据<作为减数)MES1 DB '-','$' MES2 DB '=','$'p1EanqFDPw Array 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 ES,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA1 MOV BX,05 CALL DISPL MOV AH,09H LEA DX,MES1 INT 21H MOV SI,OFFSET DATA2 MOV BX,05 CALL DISPL MOV AH,09H LEA DX,MES2 INT 21H MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 CALL SUBA 。减法运算 MOV SI,OFFSET DATA1 MOV BX,05 。显示结果 CALL DISPL MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H INT 21H MOV AX,4C00H INT 21H DISPL PROC NEAR 。显示子功能 DSI: MOV AH,02 MOV DL,[SI+BX-1] 。显示字符串中一字符 INT 21H

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 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循环右移四位

南邮考研_微机原理真题

南邮考研_微机原理历年复试题 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

微机原理及接口技术课程期末考试试题

2010/2011 学年第 2 学期末考试试题(A卷) 课程名称微机原理及接口技术 使用班级: 08060241、08060242、08060441、08060442 一、选择题(共20分,每小题1分) 1.在下列不同进制的数据中,最小的数是___________。 A) 101001B B) 101001BCD C) 52D D) 23H 2.标准的ASCII码由______位二进制代码组成。 A) 4 B) 7 C) 8 D) 9 3.堆栈的工作方式是___________。 A)先进先出 B)后进先出 C)随机读写 D)只能读出不能写入 4. 下面的说法中,___________是正确的。 A)指令周期等于总线周期 B)指令周期大于等于总线周期 C)指令周期是总线周期的两倍 D)指令周期与总线周期之间的关系不确定5. 在8086系统中,在以下地址中可作为段起始地址的为:( ) A) 20100H B) 20102H C) 20104H D) 20108H 6. 8086执行一个总线周期最多可传送( )字节。 A) 1个 B) 2个 C) 3个 D) 4个 7. Reset信号有效后,8086CPU的启动地址为__________。 A)0FFFFFH B)0FFFFH C)00000H D)0FFFF0H 8.下列四条指令中,有几条指令需要使用DX寄存器_________? MUL BX DIV BL IN AX,20H OUT 20H,AL A) 1条 B) 2条 C) 3条 D) 4条

9.在子程序的最后一定要有一条__________指令。 A) HLT B) RET C) IRET D) POP 10.下面指令序列执行后完成的运算,正确的算术表达式应是________________。 MOV AL,BYTE PTR X SHL AL,1 DEC AL MOV BYTE PTR Y,AL A) Y=2X+1 B) X=2Y+1 C) Y=2X-1 D) X=2Y-1 11.14.8086执行POP AX指令时,正确的操作是___________________。 A) AX<--[SP+1][SP],SP<--SP+2 B) AX<--[SP+1][SP],SP<--SP-2 C) SP<--SP+2,AX<--[SP+1][SP] D) SP<--SP-2,AX<--[SP+1][SP] 12. 下列有关I/O端口的描述中,不正确的是_______________。 A)I/O端口从逻辑上讲是被CPU访问的I/O接口电路中的寄存器 B)8086系统对I/O端口的访问只能通过专用的指令 C)从连接形式上讲,I/O端口总是直接与数据总线连接 D)I/O端口可以看作是CPU与外设交换数据的中转站 13. 在中断方式下,外设数据输入到内存的路径是 ( ) A)外设→数据总线→内存 B)外设→数据总线→CPU→内存 C)外设→CPU→DMAC→内存 D)外设→I∕O接口→CPU→内存 14. 8086系统中的中断向量表的作用是____________。 A)存放中断服务程序 B)存放系统引导程序 C)存放中断响应标志 D)存放中断服务程序的入口地址 15. 对8086 CPU而言,中断优先级别最高的是_______________。 A)单步中断 B)除法错,溢出中断,软中断 C)INTR D)NMI 16. 8255A芯片具有三个独立数据端口,只有_______端口具有双向传输方式。 A) A口 B) B口 C) C口 D)以上均可 17.在8253 的6种工作方式中,能够自动重复工作的两种方式是( )。 A)方式1,方式 2 B)方式 2,方式3 C)方式2,方式 4 D)方式 3,方式5 18.在通用可编程并行电路8255A中,用于传输数据的8位I/O端口共有_________。 A) 1个 B)2个 C) 3个 D) 4个 19.实验时,在DEBUG下如果要运行0100:4360段开始的一段程序用的命令为________。 A) D=0100:4360 B) A=0100:4360 C) G=0100:4360 D) Q=0100:4360 20. 汇编实验时要显示2100H:45B6H段开始的一段程序的反汇编命令用_________。 A) E 2100:45B6 B) F 2100:45B6 C) U 2100:45B6 D) N 2100:45B6 二、填空题(共20分,每空1分) 1.微型计算机由_______________、_______________、I/O接口和系统总线组成。

微机原理实验简易计算器

【实验题目】 简易计算器设计 【实验目的】 综合测试学生微机接口技术及应用能力,包括系统构思设计、电路设计搭建、软件调试等; 结合应用实际,培养学生运用微机技术服务应用、服务实际的能力。 【基本要求】 1)利用实验箱上的4x4键盘及6位数码管,实现两个16位宽的非负整数(0~65535)进行+、-、×运算,计算结果限制在范围-65535~65535,超过范围在数码管最低位显示E; 2)16个按键的分配可以自行指定; 【扩展要求】 1)按基本要求保持输入的范围不变(16位宽),扩展计算结果的范围到用足6位数码管,当计算结果超过-65535~999999时,显示E; 2)增加÷的功能,有小数显示; 【实验程序】 ;该程序实现了基本要求及扩展要求的2) DSEG SEGMENT BUFF DB 6 DUP(?) LED_7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7C H,39H,5EH,79H,71H,00H,40H POSITION DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH UNIT10 DW 10000,1000,100,10,1 NEWNUM DB 0 COUNT DB 0 FLAG DB 0 ;是否有键按下的标志 NEGTI DB 0 ;是否为负数的标志 NUM DW 0 NUM1 DW 0 NUM2 DW 0 TAG DB 0 ;运算种类标志 POINT DB 0 ;除法结果添加小数点标志 RESULT DW 0 DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV DX,300CH ;8255初始化 MOV AL,81H OUT DX,AL LEA SI,BUFF MOV CX,6 NEXT: MOV BYTE PTR[SI],16 INC SI LOOP NEXT CALL SHOW ;将显示缓冲区中内容在LED上一次显示出来 MOV COUNT,0 ;记按下了几位数 NEXT2: CALL SHOW CALL SCAN ;判断是否有按键按下 CMP FLAG,1 JZ OK JMP NEXT2 OK: MOV FLAG,0 MOV POINT,0 MOV DX,3000H ;判断是哪一个键被按下 MOV AL,0FFH OUT DX,AL MOV CH,-1 ;CH用于保存当前被扫描的列号MOV CL,07FH XL: ROL CL,1 INC CH MOV DX,3000H MOV AL,CL .

微机原理实验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 汇编基本指令及顺序程序设计实验 实验2 分支与DOS中断功能调用程序设计实验 实验3 循环结构程序设计实验 实验4 存储器扩展实验 实验5 8259应用编程实验 实验1汇编基本指令及顺序程序设计实验 一、实验目的 1、掌握汇编语言的开发环境和上机过程; 2、掌握DEBUG命令; 3、掌握顺序程序设计方法; 4、掌握寻址方式; 5、理解和掌握汇编基本指令的功能。 二、实验内容 1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。要求:用3种方法实现。 答:方法一CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000H MOV BX,5000H MOV CX,AX MOV AX,BX MOV BX,CX CODE ENDS END START 方法二CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000H MOV BX,5000H XCHG AX,BX CODE ENDS END START

方法三CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000H MOV BX,5000H PUSH AX PUSH BX POP AX POP BX CODE ENDS END START 2、分别执行以下指令,比较寄存器寻址,寄存器间接寻址和相对寄存器寻址间的区别。 MOV AX,BX 寄存器寻址,将BX内容送AX MOV AX,[BX] 寄存器间接寻址,将DS:BX内存单元内容送AX MOV AX,10[BX] 寄存器相对寻址,将DS:BX+10内存单元内容送AX 在DEBUG调试模式,用A命令直接编辑相应指令并用T命令单步执行,执行后查询相应寄存器的值并用D命令查内存。 3、已知有如下程序段: MOV AX,1234H MOV CL,4 在以上程序段的基础上,分别执行以下指令: ROL AX,CL AX=2341H ROR AX,CL AX=4123H SHL AX,CL AX=2340H SHR AX,CL AX=0123H SAR AX,CL AX=0123H RCL AX,CL 带进位标志位的循环左移 RCR AX,CL 带进位标志的循环右移 4、设有以下部分程序段: TABLE DW 10H,20H,30H,40H,50H ENTRY DW 3 ┇ LEA BX,TABLE ADD BX,ENTRY MOV AX,[BX] ┇ 要求:(1)将以上程序段补充成为一个完整的汇编程序。

相关主题