微机原理复习题 下载本文

CODE SEGMENT ASSUME CS:CODE DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,BUF CMP AL,10 JAZ MAX1 MOV BL,BL ADD AL,AL ADD AL,AL ADD AL,BL JMP STORE MAX1: SUB AL,5 STORE: MOV RESUT,AL MOV AH,4CH INT 21H

CODE ENDS END START

6、编程求解1+2+3+4??+N<100时的最大N值。 CODE SEGMENT ASSUME CS:CODE

START: MOV AL,0 MOV BL,1 AGAIN: ADD AL,BL INC BL CMP AL,100 JB AGAIN DEC BL DEC BL MOV AL,BL MOV AH,4CH INT 21H CODE ENDS END START

7、设某输入接口状态口地址83H,数据口地址80H,当状态口的D7为1时。数据准备好,试用查寻式方式输入10个数据,并将数据存在BUF开始的单元中的程序,编写主要程序段。

LEA SI,BUF MOV CX,10

WAIT: IN AL,83H TEST AL,80H JZ WAIT

IN AL,80H MOV [SI],AL INC SI DEC CX JNZ WAIT HLT

8、设某系统中有两片8255芯片,由74LS138译码器产生两个芯片的片选信号,要求:第一片8255(J1)的A口工作在方式0输出,B口工作在方式0输入,C口高4位输出,低4位输入,第二片8255(J2)的A口工作在方式0输入,B口工作在方式1输出,C口高4位输出,低4位为B口控制信号。(1)试指出两片8255芯片各自的端口地址(2)试写出两片8255芯片各自的方式控制字(3)试写出两片8255芯片各自的初始化程序。 1)第一片

A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 1 X X 1 1 1 0 0 0 138H A口 0 1 13AH B口 1 0 13CH C口 1 1 13EH CW口 第二片

A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 1 X X 1 1 0 0 0 0 130H A口 0 1 132H B口 1 0 134H C口 1 1 136H CW口 2)第一片 10000011B=83H 第二片 10010100B=94H 3) J1: MOV AL,83H MOV DX,13EH OUT DX,AL J2: MOV AL,94H MOV DX,136H OUT DX,AL

9、用一片8255,PA0~PA7接8盏灯,循环亮,每盏亮1秒,端口地址为0F8H~0FBH,已知延时程序DELAY。 分析:A口输出低电平时,等才会亮。 控制字10000000B=80H

A口F8H,B口F9H,C口FAH,CW口FBH. MOV AL,80H OUT 0FBH,AL MOV AL,0FFH OUT 0F8H,AL

MOV AL,0FEH

AGAIN: OUT 0F8H,AL

CALL DELAY

ROL AL,1 JMP AGAIN

10、由8255A口读入2位BCD码,将其位置互换(83--38),后由B口输出,8255控制口地址为97H,试编程初始化程序。 控制口 1001X00X=90H 初始化程序 MOV AL,90H OUT 97H,AL IN AL,94H MOV CL,4 ROL AL,CL OUT 95H,AL

11、如图所示,使8255A口为工作方式0输出,B口为工作方式0输入,用一组开关信号接入B口,A口输出线接至一组发光二极管,完成用开光控制发光二极管亮灭的初始化程序。 A7 A6 A5 A4 A3 A2 A1 A0

0 1 0 0 0 0 0 0 40H A

0 1 41H B 1 0 42H C 1 1 43H CW

控制字 10000010B=82H 初始化程序 MOV AL,82H