当前位置:文档之家› 内蒙古工业大学微型计算机原理及应用汇编程序实验答案

内蒙古工业大学微型计算机原理及应用汇编程序实验答案

内蒙古工业大学微型计算机原理及应用汇编程序实验答案
内蒙古工业大学微型计算机原理及应用汇编程序实验答案

内蒙古工业大学

微型计算机原理及应用实验

参考汇编程序

实验01A

将FFFFH送到AX,BX,CX,DX,SI,DI,BP寄存器

程序如下:

CODE SEGMENT

ASSUME CS:CODE

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

MOV AX,0FFFFH

MOV BX,AX

MOV CX,AX

MOV DX,AX

MOV SI,AX

MOV DI,AX

MOV BP,AX

;==============================

RET

START ENDP

CODE ENDS

END STT

实验01B

将FFH送到内存1000H,1001H,1002H,1003H,1004H单元中程序如下:

DATA SEGMENT

ORG 1000H

H1 DB 5 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

MOV AL,0FFH

MOV DI,1000H

MOV CX,5 ;循环5次

LP1:MOV [DI],AL ;FF放入1000H-1004H中

INC DI

DEC CX

JNZ LP1

;==============================

RET

START ENDP

CODE ENDS

END STT

实验02A

编写一个加法程序,在数据段偏移地址1000H处开始,存放有两个3字节长的数据(高位对应高地址,低位对应低地址),求这两数据(十六进制数)的和,并将结果放在两数据之后,利用DEBUG调试程序,并求解:CCBBAAH+223344H=?CCBBAA+554433H=?程序如下:

DATA SEGMENT

ORG 1000H

H1 DB 10 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

Mov ax,dseg

Mov ds,ax

;==============================

MOV SI,1000H

;不带最高位进位的全加器

MOV DI,1003H

MOV BX,1006H

MOV CX,3

CLC

AA: MOV AL,[SI]

ADC AL,[DI]

MOV [BX],AL

PUSHF

;保护FR,这里其实没有必要,因为INC不会产生进位

INC SI

INC DI

INC BX

POPF

LOOP AA

MOV DL,0 ;最高位进位

ADC DL,0

MOV DI,1009H

MOV [DI],DL

;==============================

RET

START ENDP

CODE ENDS

END STT

实验02B

用串传送指令把A程序的数据块(被加数、加数、和)偏移地址1000H开始的区域传递到同一数据段的偏移地址为1010H开始的区域,并利用DEBUG查看运行结果

程序如下:

DATA SEGMENT

ORG 1000H

H1 DB 20 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

MOV AX,DS ;使ES段地址与DS相同

MOV ES,AX

MOV SI,1000H

;不带最高位进位的全加器

MOV DI,1003H

MOV BX,1006H

MOV CX,3

CLC

AA: MOV AL,[SI]

ADC AL,[DI]

MOV [BX],AL

PUSHF

;保护FR,这里其实没有必要,因为INC不会产生进位 INC SI

INC DI

INC BX

POPF

LOOP AA

MOV DL,0 ;最高位进位

ADC DL,0

MOV DI,1009H

MOV [DI],DL

MOV SI,1000H ;串传送

MOV DI,1010H

MOV CX,5

CLD

REP MOVSW ;一次传送一个字

;==============================

RET

START ENDP

CODE ENDS

END STT

实验02C,选作

编写一个两位十进制数加法程序,当从键盘上输入:n1n2+n3n4则在CRT上显示n1n2+n3n4=n5n6

程序如下:

DATA SEGMENT

H1 DB "The addends all must be two figures, insufficient adds 0 in front.",13,10,'$' DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

MOV AX,DATA

MOV DS,AX

LEA DX,H1 ;打印注释:加数和被加数都必须为两位数,不够的前面补0

MOV AH,09H

INT 21H

SUB CX,CX ;CX清零

SUB DX,DX ;DX清零

CLC ;清CF

MOV AH,1 ;输入第1个数

INT 21H

MOV CH,AL ;放入CH

SUB CH,30H ;ASCII码调整

INT 21H ;输入第2个数

MOV CL,AL ;放入CL

SUB CL,30H ;ASCII码调整

MOV AH,2 ;打印加号

MOV DL,2BH

INT 21H

MOV AH,1 ;输入第3个数

INT 21H

MOV DH,AL ;放入DH

SUB DH,30H ;ASCII码调整

INT 21H ;输入第4个数

MOV DL,AL ;放入DL

SUB DL,30H ;ASCII码调整

ADD CL,DL ;ASCII码个位加法

CMP CL,10;比较个位数结果是否大于10

JNC AA ;大于等于10则跳至AA

ADD CH,DH;个位不向十位进位的十位加法

JMP BB

AA: ADD CH,DH ;个位向十位有进位的十位加法 ADD CH,1

SUB CL,10

BB: MOV DL,3DH ;打印等号

MOV AH,2

INT 21H

CMP CH,10 ;比较十位数结果是否大于10

JNC CC

MOV DL,0 ;打印十位不向百位进位的百位=0

INT 21H

JMP CCC

CC: MOV DL,31H ;打印十位向百位进位的百位=1

INT 21H

SUB CH,10

CCC:ADD CH,30H ;ASCII码调整

MOV DL,CH ;打印结果中的十位

INT 21H

ADD CL,30H ;ASCII码调整

MOV DL,CL ;打印结果中的个位

INT 21H

MOV AH,1 ;暂停

INT 21H

;==============================

RET

START ENDP

CODE ENDS

END STT

实验03A

在数据段偏移地址0100H处开始,存放0-9的平方值(构成一个表格),任给一个自然数M在0110H单元中(0<=M<=9),查表求出M的平方值,并将结果放入0111H单元。程序如下:

DATA SEGMENT

ORG 0100H

H1 DB 00,01,04,09,16,25,36,49,64,81

ORG 0110H

H2 DB 7,?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET H2

MOV AL,[SI]

MOV BX,OFFSET H1

XLAT

INC SI

MOV [SI],AL

;==============================

RET

START ENDP

CODE ENDS

END STT

实验03B

从内存1000H开始,建立19个自然递增然后又递减的数据串(0-9-0),用DEBUG查看运行结果。

程序如下:

DATA SEGMENT

ORG 1000H

H1 DB 20 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

MOV SI,OFFSET H1

MOV DI,OFFSET H1

ADD DI,12H

MOV AL,0

MOV CX,10

AA: MOV [SI],AL

MOV [DI],AL

INC SI

DEC DI

INC AL

LOOP AA

;==============================

RET

START ENDP

CODE ENDS

END STT

实验03C,选作

在数据段偏移地址1000H处,安排部分七段LED显示码表,要求从键盘上任给一个0~F 中的数,然后再屏幕上显示出其对应的码值。七段共阴极LED显示码表见实验册P14。程序如下:

DATA SEGMENT

ORG 1000H

H1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

H2 DB 1 DUP(?)

TIP DB 13,10,"The input number must be a HEX (0~F), press to quit.",13,10,'$' ERR DB 13,10,"The input number must be a HEX (0~F).",13,10,'$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

MOV AX,DATA

MOV DS,AX

LEA DX,TIP ;打印TIP信息

MOV AH,09H

INT 21H

BEGIN:

MOV DL,13 ;打印换行

MOV AH,2

INT 21H

MOV DL,10 ;打印回行首

INT 21H

MOV AH,1 ;等待从键盘输入

INT 21H

MOV SI,OFFSET H2 ;保护输入

MOV [SI],AL

CMP AL,27 ;如果按下键,跳至QUIT

JZ QUIT

CALL DISPLAY0 ;调用DISPLAY0子程序

CALL ASCII2HEX ;调用ASCII2HEX子程序

CMP AL,0FFH ;如果AL不等于FF(出错码)则跳至CORRECT

JNZ CORRECT

LEA DX,ERR ;打印错误信息

MOV AH,09H

INT 21H

JMP FINISH ;跳至FINISH

CORRECT:

MOV BX,OFFSET H1 ;查表

XLAT

MOV AH,0

MOV BX,0

MOV BL,AL ;分离AL的高4位和低4位,分离后AL中为高4位,BL中为低4位 AND AL,0F0H

MOV CL,4

SHR AL,CL

AND BL,0FH

CALL HEX2ASCII ;调用HEX2ASCII

CALL DISPLAY ;调用DISPLAY子程序

MOV AL,BL

CALL HEX2ASCII

CALL DISPLAY

MOV DL,72 ;打印字母"H"

MOV AH,2

INT 21H

JMP FINISH

QUIT:CALL ESCAPE ;调用ESCAPE子程序

FINISH:

JMP BEGIN

;==============================

RET

START ENDP

ASCII2HEX PROC NEAR

CMP AL,30H ;ASCII转16进制子程序

JB ERROR ;如果AL<0则跳至ERROR

CMP AL,39H

JBE NUMBER ;如果AL<=9则跳至NUMBER CMP AL,46H

JA ERROR ;如果AL>F则跳至ERROR

SUB AL,07H

NUMBER:

SUB AL,30H

JMP DONE

ERROR:

MOV AL,0FFH

DONE:

RET

ASCII2HEX ENDP

HEX2ASCII PROC NEAR

CLC ;16进制转ASCII子程序

DAA

ADD AL,0F0H

ADC AL,40H

RET

HEX2ASCII ENDP

DISPLAY PROC NEAR

PUSH DX ;显示结果子程序

MOV DL,AL

MOV AH,2

INT 21H

POP DX

RET

DISPLAY ENDP

DISPLAY0 PROC NEAR

PUSH AX ;该子程序打印输入及":" PUSH DX

PUSHF

MOV DL,13

MOV AH,2

INT 21H

MOV DL,10

INT 21H

MOV DL,[SI] ;打印输入

INT 21H

MOV DL,58 ;打印":"

INT 21H

POPF

POP DX

POP AX

RET

DISPLAY0 ENDP

ESCAPE PROC NEAR

MOV AH,4CH ;返回操作系统子程序 INT 21H

RET

ESCAPE ENDP

CODE ENDS

END STT

实验04A

把BX中的“1”的个数放到AL中,并在屏幕上显示“1”的个数。程序如下:

CODE SEGMENT

ASSUME CS:CODE

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

CLC

MOV AX,0

MOV DX,0

MOV BX,000FH

MOV CX,16

CHECK:

SHL BX,1

ADC DL,0

CMP DL,1

JZ COUNT

CONTINUE:

LOOP CHECK

JMP FINISH

COUNT:

ADD AL,1

DAA

CLC

MOV DX,0

JMP CONTINUE

MOV AH,0

MOV BX,0

MOV BL,AL ;分离AL的高4位和低4位,分离后AL中为高4位,BL中为低4位

AND AL,0F0H

MOV CL,4

SHR AL,CL

AND BL,0FH

CALL HEX2ASCII ;调用HEX2ASCII

CALL DISPLAY ;调用DISPLAY子程序

MOV AL,BL

CALL HEX2ASCII

CALL DISPLAY

;==============================

RET

START ENDP

HEX2ASCII PROC NEAR

CLC ;16进制转ASCII子程序

DAA

ADD AL,0F0H

ADC AL,40H

RET

HEX2ASCII ENDP

DISPLAY PROC NEAR

PUSH DX ;显示结果子程序

MOV DL,AL

MOV AH,2

INT 21H

RET

DISPLAY ENDP

CODE ENDS

END STT

实验04B,选作编写程序在CRT上显示图形(图形见实验册P17)。程序如下:

CODE SEGMENT

ASSUME CS:CODE

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

MOV BL,14H

MOV BH,1

MOV CX,0AH

LP: PUSH BX

CALL SPACE

CALL STAR

CALL CRLF

POP BX

DEC BL

ADD BH,2

LOOP LP

;==============================

RET

START ENDP

SPACE PROC NEAR ;打印空格子程序

PUSH CX

MOV CX,0

MOV AH,2

MOV DL,32

MOV CL,BL

LP1:INT 21H

LOOP LP1

POP CX

RET

SPACE ENDP

STAR PROC NEAR ;打印"*"子程序

PUSH CX

MOV CX,0

MOV DL,2AH

MOV AH,2

MOV CL,BH

LP2:INT 21H

LOOP LP2

POP CX

RET

STAR ENDP

CRLF PROC NEAR ;回车换行子程序

MOV DL,13

MOV AH,2

INT 21H

MOV DL,10

INT 21H

RET

CRLF ENDP

CODE ENDS

END STT

实验04C,选作

自动生成1至99BCD数并送屏幕显示,显示格式见实验册P19。程序如下:

CODE SEGMENT

ASSUME CS:CODE

START PROC FAR

STT:PUSH DS

SUB AX,AX

PUSH AX

;==============================

MOV BL,16

MOV AL,0

CALL PRINT

CALL CRLF

;==============================

RET

START ENDP

PRINT PROC NEAR

;打印数字子程序

MOV AH,2

MOV DH,1

MOV CX,10

MOV BH,30H

LP2:PUSH CX

MOV CX,10

MOV BL,30H

LP0:CMP BH,30H

JZ AA

JMP BB

AA: CMP BL,30H

JZ CON

BB: MOV DL,BH

INT 21H

MOV DL,BL

INT 21H

CALL SPACE CON:INC BL

LOOP LP0

INC BH

POP CX

LOOP LP2

RET

PRINT ENDP

SPACE PROC NEAR ;打印空格子程序

PUSH CX

MOV CX,0

MOV AH,2

MOV DL,32

MOV CL,2

LP1:INT 21H

LOOP LP1

INC DH

CMP DH,17

JZ KK

JMP LL

KK: CALL CRLF

MOV DH,1

LL: POP CX

RET

SPACE ENDP

CRLF PROC NEAR

;回车换行子程序

MOV DL,13

MOV AH,2

INT 21H

MOV DL,10

INT 21H

RET

CRLF ENDP

CODE ENDS

END STT

实验05A

从首地址为BUF开始存放10个数(单字节无符号数),从这些数种找出最大值,存入MAX 中,并显示到屏幕上。

程序如下:

DATA SEGMENT

ORG 1000H

BUF DB 1H,2H,3H,4H,9H,5H,6H,0EH,8H,7H

微机原理及应用试题库(附答案)

《微机原理及应用》试题库 1. 8086和8088的引脚信号中, D 为地址锁存允许信号引脚。 A.CLK B.INTR C.NMI D.ALE 2. 下面的哪项是有效标识符: B A . 4LOOP: B. DELAYIS: C. MAIN A/B: D. GAMA$1: 3. 如图所示的三态输出电路,当 A 时,V B≈V DD。 A. E(ENABLE)=1, A=1 B. E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D. E(ENABLE)=0, A=0 4. 设(SS)=2000H,(SP)=0100H,(AX)=2107H,则执行指令PUSH AX 后,存放数据21H的物理地址是 D 。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的 A 。 A.符号地址B.物理地址C.偏移地址D.逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是 A 。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX,0 MOV BX,1 MOV CX,100 AA:ADD AX,BX INC BX LOOP AA HLT 执行后的结果:(AX)= ,(BX)= 。 A. 5050,99 B. 2500,100 C. 5050,101 D. 2550,102 8. 假设V1和V2是用DW定义的变量,下列指令中正确的是 A 。 A.MOV V1, 20H B.MOV V1, V2 C.MOV AL, V1 D.MOV 2000H, V2 9. – 49D的二进制补码为 A 。

同济大学微机原理实验报告

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

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

实验报告:(包括目的、方法、原理、结果或实验小节等)。 一、实验目的 掌握简单并行接口的工作原理及使用方法。 二、实验内容 1、按下面图一简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。 2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。 3、按下面图二简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。 4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。 图一图二 三、实验中使用到的程序 对于简单并行输出接口: stack1 segment stack 'stack' dw 32 dup(0) stack1 ends data segment baseport equ 0ec00h-280h;实际基址 port equ baseport+2a8h;基址+偏移地址 data ends code segment assume ss:stack1,ds:data,cs:code start: mov ax,data mov ds,ax again: mov ah,1 int 21h

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

微机原理及应用实验 实验一开发环境的使用 一、实验目的 掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部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机一台。

微机原理及应用实验

实验报告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。

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

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

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

微机原理及应用(广西大学)

微机原理期末复习要点(必看) 一、填空题(每空1分,共30分) 1、CPU访问存储器时,在地址总线上送出的地址称为物理地址。 2、80X86系统中,执行指令PUSH AX后,SP= SP-2 ;若执行指令POP AX 后,SP= SP+2 。 3、指令“MOV AX,2000H”源操作数的寻址方式为立即数 ;指令“MOV AX,[BX+SI+6]”源操作数的寻址方式为带偏移量的基础加变址。 4、设(DS)=24EOH,(SS)=2410H,(ES)=2510H,(DI)=0206H,则指令“MOV AX,[DI+100H]”源操作数的有效地址为 0306H ,物理地址为 25106H 。 5、80486可访问两个独立的地址空间,一个为I/O地址空间,其大小为 64K 字节。 6、执行指令“XOR AX,AX”后,标志位ZF的值为 1 。 7、若(AL)=10011000B,(BL)=01100111B,则执行指令“ADD AL,BL”后,(AL)=11111111B;执行指令“AND AL,BL”后,(AL)= 0 。 8、可屏蔽中断从CPU的 INTR 引脚进入,只有当中断允许标志IF为 1 时,该中断才能得到响应。 9、中断向量表存放在从 00000H 至 003FFH 存储空间中。 10、在实地址方式下,中断类型号为20H的中断所对应的中断向量,存放在内存 从 00080H 开始的四个连续字节单元中,若这四个字节单元的内容由低地址到 高地址依次为00H,50H,00H,60H,则中断服务程序的入口地址 65000H 。 11、80X86的I/O指令中,要寻址的16位的端口地址存放在 DX 中。 12、现要用6116静态RAM芯片构成8K×32位的存储器,此种芯片共需16 片。 13、8255A在“方式1输出”与外设之间的一对"握手"信号是 ACK和OBF 。 14、由实地址方式上,由逻辑地址获得物理地址的计算公式为:

微机原理及应用实验报告

微机原理及其应用上机实验报告 实验一 程序调试实验(顺序结构程序设计) 一、实验目的: 1.学习及掌握汇编语言源程序的基本结构,明确程序中各段的功能和相互之间的关系。 2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。 3、熟悉和掌握DEBUG 常用命令的使用 二、实验要求: 1、上机前,要认真阅读前言和课本相关章节 2、上机前,画好流程图,编写好程序 3、上机时,注意出现的错误,记录下出错信息,翻译之 4、完成好实验报告 三、实验内容: 在内存TAB 开始的16个单元连续存放了0-15的平方值(0-225),任给一个数X(0 ≤ X ≤ 15),求X 的平方值,并把结果存放在Y 单元中。 (2).分析 X 平方的值是tab 为首地址且x 的值为有效地址中的值。 data segment x db 8 y db data ends stack segment para'stack' db 100 dup(0) stack ends code segment assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax xor ax,ax

mov al,x lea si,tab add si,ax mov al,[si] mov y,al mov ah,4ch int 21h code ends end start (3).程序调试: 4.心得体会 了解了顺序结构,掌握了程序的运行,调试。 实验二分支程序设计 一、实验目的: 熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法;掌握条件转移、无条件转移指令的使用方法。掌握分支程序设计、编写、调试和运行的方法。 二、实验要求: 1、上机前认真分析题意,找出算法,画出流程图,依据流程图,编好程序。 2、认真调试程序,对程序可能存在的所有分支都要进行运行,只有这样才能证明程序的正确性。 二、实验内容

(微机原理及应用)编程题试题集

重庆科技学院试卷库系统试卷库导出试卷 微机原理及应用-编程题(43题) 题序:0017题型:06难度:01分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DA TAY DW 0237H DW 4052H 试编写一个程序段,实现将DATAX和DA TAY两个字数据相乘(用MUL)。答案: 解:(1) MOV AX, DATAX MUL DATAY MOV DATAY,AX MOV DATAY+2,DX 题序:0018题型:06难度:02分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DA TAY DW 0237H DW 4052H 试编写一个程序段,实现将DATAX除以23(用DIV)。 答案: 解:(1) MOV AX, DATAX MOV BL, 23 DIV BL MOV BL,AH

MOV AH, 0 MOV DATAY, AX 。存放商 MOV AL,BL MOV DATAY+2, DX 。存放余数 题序:0002题型:06难度:03分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 试编写一个程序段,实现将BX中的数除以10,结果仍放在BX中。 答案: 解: MOV CL,0AH MOV AX,BX DIV CL MOV BX,AX 题序:0016题型:06难度:03分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DA TAY DW 0237H DW 4052H 试编写一个程序段,实现将DATAX和DA TAY中的两个双字数据相加, 和存放在DA TAY和答案: 解:(1) MOV AX, DATAX ADD AX, DATAY MOV BX, DATAX+2 ADD BX, DATAY+2 MOV DATAY, AX MOV DATAY+2, BX

微机原理及应用实验报告81487

实 验 报 告 课 程 名 称 实 验 名 称 实 验 日 期 学 生 专 业 学 生 学 号 学 生 姓 名 教 师 姓 名 成 绩 南京理工大学机械工程学院 微机原理及应用 实验1 DEBUG 操作实验 实验2 汇编程序设计实验 实验3 8253定时/计数器实验 实验4 8255 并行接口实验 年 月 日 至 年 月 日

实验一DEBUG命令及其操作 一、实验目的 1.熟练掌握debug的常用命令,学会用debug来调试程序。 2.深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。 3.掌握各种寻址方法以及简单指令的执行过程。 二、实验要求 1.实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。 2.本实验要求在PC机上进行。 3.本实验只要求在DEBUG调试状态下进行,包括汇编程序,调试程序,执行程序。三、实验内容 ●实验内容1:学习用DEBUG调试工具进行源程序的输入、汇编、调试和执行。 实验报告要求: 1.写出运行结果; 2.小结debug常用命令及使用体会 答:1.原文已给出(略) 2.a 汇编 d显示内存单元内容 e修改单元内存内容 g执行命令 t单步(或多步)调试 n指定文件路径文件名(含扩展名) u反汇编 r查看寄存器值及修改 l加载程序 w写盘命令 体会:提升学习热情和动手能力有助于理解代码执行过程 ●实验内容2 设AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。 实验报告要求: 1.写出完成上述功能的程序段; 2.单步执行,并记录寄存器AX, BX及堆栈指针SP的值 答: A100 Mov ax,3000 ;ax:3000 bx:0000 sp:ffee Mov bx,5000 ;ax:3000 bx:5000 sp:ffee Push ax ;ax:3000 bx:5000 sp:ffec

微机原理实验报告

微机原理 实验报告 学校:湖北文理学院、班级:电子1413 姓名:杨仕浩 学号:2014111347 指导老师:吉向东

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 四、实验程序清单 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 A DDA 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: M OV AL,[SI] MOV BL,[DI] ADC AL,BL AAA MOV [SI],AL DEC SI DEC DI LOOP AD2 MOV SI,DX MOV DI,BP MOV BX,05H AD3: ADD BYTE PTR [SI],30H ADD BYTE PTR [DI],30H DEC SI

微机原理与应用作业答案

1. 若二进制数为 ,则该数的十进制表示为( B : )。 2. 为二进制补码,该数的真值为( C +58 )。 3. 01000110为二进制补码, 该数的真值为( A +70 )。 4. 8位二进制数的原码表示范围为( C -127 ~ +127 )。 5. n 位二进制数的原码表示范围为( C 12~1211-++---n n )。 6. 8位二进制数的反码表值范围为( C -127~ +127 )。 7. n 位二进制数的反码表示范围为( C 12~1211-++---n n )。 8. 8位二进制数的补码表值范围为( B -128 ~ +127 )。 9. n 位二进制数的补码表示范围为( B 12~211-+---n n )。 10. 8位二进制数的无符号数表值范围为( A 0 ~ 255 )。 11. 决定计算机主要性能的是( A 中央处理器 )。 12. M I P S 用来描述计算机的运算速度,含义是( C 每秒执行百万条指令 )。 13. 完整的计算机系统应包括( D 硬件设备和软件系统)。 14. 计算机硬件主要由C P U 、内存、I /O 设备和( B 三总线 )组成。 15. 包含在8086C P U 芯片内部的是( A 算术逻辑单元)。 16. 在机器数( B 补码)中,零的表示形式是惟一的。 17. 程序计数器P C 的作用是( A 保存将要执行的下一条指令的地址)。 18. 8086当前被执行的指令存放在( D CS :IP )。 19. 运算器执行两个补码表示的整数加法时,产生溢出的正确叙述为( D 相加结果的符号位与两同号加数的符号位相反则产生溢出)。 20. 8086中,存储器物理地址形成算法是( B 段地址左移4位/16/10H+偏移地址 )。 21. 下列逻辑地址中对应不同的物理地址的是( 03E0H :0740H )。 A :0400H :0340H B :0420H :0140H D :03C0H :0740H 22. 存储字长是指( B 存储单元中二进制代码个数)。 23. 8086系统中,每个逻辑段的最多存储单元数为( C 64KB )。 24. 若某C P U 具有64G B 的寻址能力,则该C P U 的地址总线宽度为( 36 )。 25. 下列数中最小的数是( A (1011011)2 )。 26. 指令队列具有( D 暂存预取指令 )的作用。 27. 指令队列工作方式为( A 先进先出 )。 28. 堆栈存储器存取数据的方式是( C 先进后出)。 29. 8086系统中,一个栈可用的最大存储空间是( B 64KB )。 30. 8086C P U 有( C 8 )个8位的通用寄存器。 31. 8086C P U 共有( D 14)个16位寄存器。 32. 某补码表示的8位二进制整数由5个1和3个0组成,则其可表示的最小值是 ( A -113 )。 33. 16个字数据存储区的首址为70A 0H :D D F 6H ,末字单元的物理地址为( C :7E814H )。 34. 8个字节数据存储区的首址为70A 0H :D D F 6H ,末字节单元的物理地址为( D :7E7FDH )。 35. 用M B 表示存储器容量时,1M B 等于( C 220个字节)。 1. 8086与外设进行数据交换时,常会在( T 3 )后进入等待周期T w 。 2. 下列说法中属于最小工作模式特点的是( A CPU 提供全部的控制信号)。 3. 下列说法中属于最大工作模式特点的是( C 需要总线控制器8288 )。 4. 8086 C P U 中,需要( B 2 )片数据总线收发器芯片8286。 5. 8086C P U 中,需要( C 3 )片地址锁存器芯片8282。 6. 从8086存储器中读取非规则字需要( B 2 )个总线周期。 7. 从8086存储器中读取奇地址存储的字节需要( A :1 )个总线周期。 8. 下列说法中,不正确的是( C 栈底是堆栈地址较小的一端)。 9. 在8086系统中,用控制线( D M/IO )实现对存储器和I /O 接口的选择。 10. C P U 对存储器访问时,地址线和数据线的有效时间关系为( B 地址线先有效)。 11. 8086 C P U 共有( D 21 )根分时复用总线。

微机原理及应用实验报告

微机原理及应用实验报告标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

微机原理及应用实验报告 班级: 姓名: 学号: 中南大学 机电工程学院精密测控实验室

实验二软件程序设计 1.实验目的: 1、掌握MCS-51单片机指令系统及用汇编语言编程技巧; 2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。 2.实验内容: 1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。 2.、编写多字节加法程序并上机调试通过。 8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结 果存入以20H为起始地址的区域中(低字节在前)。 3.实验设备名称、型号: 4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单: 程序1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。

解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次 后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如 果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列 了。则可以退出循环,结束程序。 程序结构框图和程序代码如下:

微机原理及应用 上机实验报告2 数据传送

课程名称:_________微机原理及应用___________指导老师:_____钟崴_______成绩:__________________ 实验名称:_________数据传送___________实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求(必填) 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容和原理(必填) 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、主要仪器设备(必填) PC机一台。 四、操作方法和实验步骤 逐段编制程序,汇编无误后,用连续或者单步的方式运行程序,检查程序的运行结果,看是否达到预期的效果。 五、程序清单 1. ORG 0000H CLEAR MOV R0,#30H ;间接寻址 MOV A,#40H ;立即寻址 MOV @R0,A ;间接寻址 MOV A,30H ;直接寻址 MOV DPTR,#0100H ;间接寻址 MOV A,#36H MOVX @DPTR,A MOV R0,#50H ;立即寻址 MOV A,#10 MOVC A,@A+DPTR ;变址寻址 END

微机原理及应用试题

名姓 号学 级班 系 院学 扬州大学试题纸 (2009 —2010学年第1学期) 广陵学院07班(年)级课程微机原理及应用(A)卷 题目-一一-——二■——三四五总分 得分 阅卷人 分 ) 1 得分阅卷人审核人、选择题 (20%,每题 1. 以程序存储和程序控制为基础的计算机结构提出者是(B ) A.布尔 B. 冯?诺依曼 C.图灵 D. 帕斯卡尔 2. 十进制数95转换成二进制数是(D ) A.10010101 B.01100101 C. 0100110 D.01011111 3.大写字母C的ASCII码是(C ) A. 11001100B B. 00001100B C. 01000011B D.01000111B 4?在微机中,主机和高速硬盘进行数据交换,一般采用的方式是(D ) A.程序直接控制方式 B. 程序中断控制方式 C.无条件传送方式 D. DMA 方式 5?将寄存器AX的内容求反的正确指令是(C ) A. NEG AX B. CMP AX,0FFFFH C. NOT AX D. CMP AX , AX 6.指令MOV ARRAY[DI], DX 源操作数的寻址方式是(B ) A.变址寻址 B. 寄存器寻址 C.基址寻址 D. 基址变址寻址 7. 8086/8088 响应不可屏蔽中断时,其中断类型号是(A ) A.由CPU自动产生 B. 从外设取得 C.由指令INT给出 D. 由中断控制器提供 8.8086指令队列的长度是(C ) A. 4个字节 B.5 个字节 C.6 个字节 D.8 9.在最小模式下,CPU从外设读取数据操作, M / IO、WR、 个字节 RD信号的状态依次为(A ) A. 0 , 1, 0 B. 0 ,三态,0 C. 0 , 0, 1 D. 1 , 1, 0 10.在8086系统中,CPU被启动后,IP及四个段寄存器的初始状态是 (D )

微机原理实验报告

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

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在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

微机原理与应用实验报告

微机原理及应用实验报告 班级:机械1301班 :黄佳清 学号:0801130117 座位号: 中南大学机电工程学院

实验一单片机仿真开发机操作和MCS-51指令系统应用 一.实验目的 1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整; 2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编; 3、掌握程序的调试和运行的各种方法。 三.实验容及步骤(完成分值:60分) 本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真 1.新建工程项目 2.设置工程文件参数 3.编写新程序事例 4.调试程序直至能够运行出结果。 四.实验程序 AJMP MAIN ORG 0030H MAIN: MOV R0,#20H MOV R2,#0FH MOV A,#00H A1: MOV R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H ;暂停,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A2: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H ;断点,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A3: MOVX A,DPTR MOVX R0,A INC R0 INC DPTR DJNZ R2,A3 DO: LJMP DO END ;部存储器数据块赋值,搬运数据块到外部存储器,再搬运回部数据存储器。 五、附加题 1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光

2.在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元容 3.

微机原理及应用

《微机原理及应用》 实训指导书 山东科技大学泰山科技学院

目 录 一、实训性质 (1) 二、实训目标 (1) 三、实训基本要求 (1) 四、实训过程要求 (1) 五、实训题目 (2) 实训一 学生成绩统计 (2) 实训二 打字游戏 (3) 实训三 乒乓球比赛游戏机 (3) 实训四 交通灯控制 (4) 实训五 反应测试仪 (5) 实训六 电子琴 (5) 实训七 猜数字游戏 (6) 实训八 微秒计时器 (6) 实训九 参数可调波形发生器 (6) 实训十 模拟电梯 (7) 实训十一 多通道温度采集与显示系统 (8) 试验十二 计算机串行通信接口的设计与应用 (8) 实训十三 流水线模拟监视器 (8) 实训十四 数据传送显示 (9)

一、实训性质 《微机原理及应用》实训教学是学生在完成《微机原理及应用》理论学习之后,为培养学生 的动手能力而必须完成的实践性教学环节。在进行本教学环节之前,学生应具备《微机原理及应 用》的理论基础知识。 二、实训目标 《微机原理及应用》实训的教学让学生通过接触客观实际,来了解和认识所学的专业知识, 让学生了解和掌握所学知识在客观实际中的应用,通过实训课可以使学生了解解决实际问题的过 程,并能亲自动手完成相关题目设计。让学生对实际课题设计的过程和方法有个很好的认识,又 能亲自动手来锻炼提高专业技能,把所学的理论知识与实际能力紧密的结合在一起。 在进行实训的同时,教师应培养学生具有初步的科研意识,培养学生查找资料、运用设计资 料,完成工程问题的能力,为后继课程的学习打下坚实的基础。 三、实训基本要求 为检验学生在原理与接口综合应用方面分析问题与解决问题的能力,同时亦给学生提供更 多、更好的训练机会,本指导书给出了微机硬件应用综合测试题。大部分测试题,至少需要选用 PC 总线微机实验装置中 3 部分以上的硬件电路(还需将它们有机组合起来)并编制相应的应用软 件。为了发挥每一个同学的创造能力,每一测试题除了题目外仅给出设计要求(又分基本要求与 进一步要求两部分)及很少的设计提示。学生可根据设计要求,选择最合适的器件,构成最有效 的硬件电路来完成。对于学有余力的学生,除了完成基本要求与进一步要求的内容外,还可对同 一题选择不同的器件(而这往往总是能做到的)构成不同的硬件电路,尽情发挥和创造。 四、实训过程要求 1.软件部分 对软件部分,建议按如下的步骤进行: (1)首先正确理解题意及题目要求,分析程序设计思想; (2)建立算法,绘制流程图; (3)再根据算法流程图编写程序;

北京理工大学微机原理实验报告

微机原理与接口技术 实验报告 实验内容:汇编语言程序设计实验 组别:12 姓名: 班级: 学号:

一、实验目的 1、熟悉IDE86集成开发环境的使用。 2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。 3、熟悉DOS命令调用,以达到输入输出、返回DOS系统等目的。 4、掌握利用汇编实现求和与求最值的方法。 5、掌握利用汇编实现数制转换的方法。 6、巩固理论知识,锻炼动手编程,独立思考的能力。 二、实验内容(具体内容) 1、求从TABLE开始的10个无符号字节数的和,并将结果放在SUM字单元中。并查看前5个,前8 个数之和以及各寄存器和内存的状态。 2、在1的基础上修改程序,求出10个数中的最大值和最小值,最后将最大最小值分别赋给MAX及 MIN。 3、求1到 100 的累加和,并用十进制形式将结果显示在屏幕上。要求实现数据显示,并返回DOS 状态。 三、实验方法 1、设计思路 (1)实验1的设计思路:先将10个要相加的数存在以TABLE为首的10个连续的存储单元中,然后利用循环结构依次取出数值放在AL中并累加,若有进位则加到AH中直至循环10次累加结束,将累加的结果放在SUM中并返回DOS状态。 (2)实验2的设计思路:先将10个要比较的数放在以TABLE为首的10个连续的存储单元中。 将第一个数首先赋给AL和AH(分别存储相对最小和最大值)在利用LOOP循环结构,依次和下面的数进行比较,每次把相对的最大值与最小值存储到AH和AL中直至循环9次比较结束,将AH和AL里面的最大值与最小值赋给MAX和MIN,返回DOS状态 (3)实验3的设计思路:先在内存中定义COUNT=100,表示1-100求和,若相求1-n的和并显示只需COUNT的值为n即可,同时定义一块以DNUM为首地址的数据区用于存储累加和的十进制数对应的ASCII码。先利用AX和LOOP求出1-COUNT的累加和存在AX中;在进行数值转化,AX 依次除10取余数保存,将16进制数转化为10进制ASCII码值并存在DUNM中。最后在屏幕上显示并返回DOS状态。 2程序流程图 实验一、二和三的流程图分别如图1、图2和图3所示

微机原理及应用试题

扬州大学试题纸Array ( 2009-2010学年第1学期) 广陵学院07 班(年)级课程微机原理及应用 (A)卷 1. 以程序存储和程序控制为基础的计算机结构提出者是(B ) A.布尔 B.冯﹒诺依曼 C.图灵 D.帕斯卡尔 2.十进制数95转换成二进制数是(D ) A. 10010101 B. 01100101 C. 0100110 D. 01011111 3.大写字母C的ASCII码是(C ) A. 11001100B B. 00001100B C. 01000011B D. 01000111B 4.在微机中,主机和高速硬盘进行数据交换,一般采用的方式是( D) A. 程序直接控制方式 B. 程序中断控制方式 C. 无条件传送方式 D. DMA方式 5.将寄存器AX的内容求反的正确指令是( C ) A. NEG AX B. CMP AX,0FFFFH C. NOT AX D. CMP AX,AX 6. 指令MOV ARRAY[DI],DX 源操作数的寻址方式是(B ) A.变址寻址 B.寄存器寻址 C.基址寻址 D.基址变址寻址 7. 8086/8088响应不可屏蔽中断时,其中断类型号是(A ) A.由CPU自动产生 B.从外设取得 C.由指令INT给出 D.由中断控制器提供 8.8086指令队列的长度是 ( C ) A. 4个字节 B.5个字节 C.6个字节 D.8个字节 M/、WR、RD信号的状态依次9. 在最小模式下,CPU从外设读取数据操作,IO 为( A ) A. 0,1,0 B. 0,三态,0 C. 0,0,1 D. 1,1,0 10.在8086系统中,CPU被启动后,IP及四个段寄存器的初始状态是(D )

微机原理与应用

《微机原理与应用(1)》复习资料 一、填空 1、指令格式是指指令码的结构形式。通常,指令可以分为操作码和操作数两部分。 2、RST为8031的复位端,高电平有效,INC 指令的功能是自加1。 3、数据指针DPTR是一个(16)位的特殊功能寄存器,其高位字节寄存器用(DPH)表示,低位字节寄存器用(DPL)表示. 4、MOVC A,@A+DPTR指令中,源操作数在__程序_____存储区。 MOVX A,@DPTR 指令中,源操作数在____数据____存储区。 5、8031的异步通信口为全双工(单工/半双工/全双工) 6、P0口是一个 8 位漏极开路型双向I/O端口.在访问片外存储器时,它分时提供低8位地址和8位双向数据,故P0 的I/O线有地址线/数据线之称. 7、通用寄存器B是专门为乘除法设置的寄存器。在除法运算执行后,商存于累加器A 中,余数存于寄存器B 中。 8、MCS-51的堆栈只可设置在堆栈区,堆栈寄存器sp是 8 位寄存器。 9、MCS-51的I/O接口分为串行接口和并行接口两种,它是连接CPU和外设的桥梁。 10. MCS-51有 5 中断源,有 2 中断优先级,优先级由软件填写特殊功能寄存器 IP加以选择。 11、MOV A,@R0 指令对于源超作数的寻址方式是寄存器间接寻址。 12、已知fosc=12MHz, T0作为定时器使用时,其定时时间间隔为1us。 13、在MCS-51中查表时的数据表格是存放在 ROM 而不是存放在 RAM ,在编程时可以通过伪指令DB来定义。 14、8255可以扩展 3 个并行口,其中 8 条口线具有位操作功能。 二、选择题 1.单片机中的程序计数器PC用来 C 。 A.存放指令 B.存放正在执行的指令地址 C.存放下一条指令地址 D.存放上一条指令地址 2.8051单片机上电复位后,堆栈区的最大允许范围是内部RAM的 D 。 A.00H—FFH B.00H—07H C.07H—7FH D.08H—7FH 3.8051单片机的定时器T0用作定时方式时是 D 。 A.由内部时钟频率定时,一个时钟周期加1 B.由外部计数脉冲计数,一个机器周期加1 C.外部定时脉冲由T0(P3.4)输入定时 D.由内部时钟频率计数,一个机器周期加1 4.MCS-51单片机在同一级别里除INT0外,级别最高的中断源是 B 。 A.外部中断1 B.定时器T0 C.定时器T1 5.已知A=87H ,(30H)=76H,执行 XRL A,30H 后,其结果为: C 。 A.A=F1H (30H)=76H P=0 B.A=87H (30H)=76H P=1 C.A=F1H (30H)=76H P=1 D.A=76H (30H)=87H P=1 6、MCS-51单片机的堆栈区应建立在( C )。 A. 片内数据存储区的低128字节单元 B. 片内数据存储区 C.片内数据存储区的高128字节单元 D.程序存储区 7、MCS-51单片机定时器工作方式0是指的( C )工作方式。 A.8位 B.8位自动重装 C.13位 D.16位 8、当需要从MCS-51单片机程序存储器取数据时,采用的指令为( B )。 A.MOV A, @R1 B.MOVC A, @A + DPTR C.MOVX A, @ R0 D.MOVX A, @ DPTR 9.MCS-51单片机在同一级别里除INT0外,级别最高的中断源是( B )。 A.外部中断1 B.定时器T0 C.定时器T1 D.外部中断0 10.已知A=87H ,(30H)=76H,执行 XRL A,30H 后,其结果为:( C )。 A.A=F1H (30H)=76H P=0 B.A=87H (30H)=76H P=1 C.A=F1H (30H)=76H P=1 D.A=76H

相关主题
文本预览
相关文档 最新文档