微机原理与接口技术程序设计.docx
- 文档编号:23164433
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:20
- 大小:394.01KB
微机原理与接口技术程序设计.docx
《微机原理与接口技术程序设计.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术程序设计.docx(20页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术程序设计
程序设计题
1、统计从01000H内存单元开始的100个字(WORD)型带符号数中的正数,负数和零的字(WORD)个数?
解:
设正数个数存放于BX中,负数个数存放于DI中,零的个数存放于DX中
MOVAX,0100HJZZERO
MOVDS,AXJLNEGAT
MOVBX,0INCBX
MOVDX,0JMPNEXT1
MOVDI,0ZERO:
INCDX
MOVSI,0JMPNEXT1
MOVCX,100NEGAT:
INCDI
NEXT:
MOVAX,[SI]NEXT1:
ADDSI,2
CMPAX,0LOOPNEXT
2、实现两个十六位二进制的加法,要求加数放在FIRST开始单元,被加数放在SECOND开始单元,和数放在SUM单元
解:
MOVAX,FIRST
ADDAX,SECOND
MOVSUM,AX
3从BUFF单元起有一个字符串(长度小于65535),以'*'结束,编写一个完整程序求该字符串长度存入LENT单元,并统计字符串中含有大写英文字符的个数并存入COUNT单元。
要求源程序具备必要的伪指令和段说明。
1.
DATASEGMENT
INCCX
BUFFDB'ABCD…….*'
CMPAL,'A'
LENTDW?
JCNEXT
COUNTDW?
CMPAL,'Z'
DATAENDS
JNCNEXT
CODESEGMENT
INCDX
ASSUMECS:
CODE,DS:
DATA
NEXT:
INCBX
START:
MOVAX,DATA
JMPLP
MOVDS,AX
DONE:
INCCX
LEABX,BUFF
MOVLENT,CX
MOVCX,0
MOVCOUNT,DX
MOVDX,0
MOVAH,4CH
LP:
MOVAL,[BX]
INT21H
CMPAL,'*'
CODE
ENDS
JZDONE
ENDSTART
4.有一带符号8位数X存于DAT单元.编一个程序段判断该数,若x小于0则将0FFH送MARK单元;若X等于0则将MARK+1单元置0FFH;若X大于0则置MARK+2单元为0FFH。
MOVAL,DAT
JMPDONE
ANDAL,AL
LPl:
MOVMARK,0FFH
JSLP1
JMPDONE
JZLP2
LP2:
MOVMARK+1,0FFH
MOVMARK+2,0FFH
DONE:
HLT
5.已知有X、Y、Z三个字变量,存放无符号整数,请编一个完整的程序实现公式Z=(X+Y)/(X-Y+600)(不考虑溢出情况)。
DSEGSEGMENTSUBBX,Y
XDW?
ADDBX,600
YDW?
MOVAX,X
ZDW?
ADDAX,Y
DSEGENDSMOVDX,0
CSEGSEGMENTDIVBX
ASSUMECS:
CSEG,DS:
DSEGMOVZ,AX
MAINPROCFARMOVAH,4CH
BEGIN:
MOVAX,DSEGINT21H
MOVDS,AXMAINENDP
MOVBX,XCSEGENDS
ENDBEGIN
6.AX寄存器中存放着4位十六进制数。
试编写一个汇编语言程序,将这4位十六进制数分别转换为相应的ASCII码,并依次存放到RESULT数组的4个字节中去,要求用调用子程序的方法实现。
CODESEGMENTHASCPROCNEAR
ASSUMECS:
CODE,DS:
CODEMOVDL,AL
START:
MOVBX,CODEANDDL,0FH
MOVDS,BXCMPDL,9
MOVCL,4JAL2
MOVBL,4ADDDL,30H
MOVSI,OFFSETRESULTL1:
RET
LP:
CALLHASCL2:
ADDDL,37H
MOV[SI],DLJMPL1
INCSIHASCENDP
SHRAX,CLRESULTDB4DUP(?
)
DECBLCODEENDS
JNZLPENDSTART
EXIT:
MOVAH,4CH
INT21H
7.写出对存放在DX和AX中的双字长数求补的指令序列。
方法1方法2方法3
MOVCX,0NOTAXNEGDX
SUBCX,AXNOTDXNEGAX
MOVAX,CXADDAX,1SBBDX,0
MOVCX,0ADCDX,0
SBBCX,DX
MOVDX,CX
8.设有两个等长字符串。
试编写一个汇编语言程序,比较它们是否完全相同;若相同,则将字符"Y"送入AL中,否则,将字符"N"送入AL中。
CODESEGMENT
REPECMPSB
ASSUMECS:
CODE,DS:
CODE
JNZNE
START:
MOVAX,CODE
MOVAL,'Y'
MOVDS,AX
JMPEXIT
MOVES,AX
NE:
MOVAL,'N'
CLD
EXIT:
MOVAH,4CH
LEASI,STRING1
INT21H
LEADI,STRING2
STRING1DB'…'
MOVCX,DI
STRING2DB'…'
SUBCX,SI
CODE
ENDS
XORAX,AX
ENDSTART
9.写出程序段,把DX,AX中的双字右移四位。
MOVCL,4SHRDX,CL
SHRAX,CLSHLBL,CL
MOVBL,DLORAH,BL
9.编写一个完整的8086汇编语言程序,从附加段中首地址为ADR1(变量名)连续存放的100个字型无符号整数中找出最大数,并将此数及其偏移地址分别放入变量MAX和MAXM中
DATASEGMENT
MOVAX,ES:
[SI]
ADR1DW100DUP(?
)
LOP1:
CMPAX,ES:
[SI]
MAXDW?
JAELOP3
MAXMDW?
MOVAX,ES:
[SI]
DATAENDS
MOVES:
[MAXM],SI
CODESEGMENT
LOP3:
ADDSI,2
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
LOOPLOP1
MAINPROCFAR
MOVES:
[MAX],AX
MOVAX,DATA
MOVAH,4CH
MOVES,AX
INT21H
MOVSI,OFFSETADR1
MAIN
ENDP
MOVCX,100
CODE
ENDS
MOVES:
[MAXM],SI
ENDMAIN
10.已知(AX)=4BD5H,统计AX中1的个数和0的个数,并分别放在BL和DL中。
编写程序段实现该功能。
MOVAX,4BD5HINCDL
MOVBL,0JMPL3
MOVDL,0L2:
INCBL
MOVCX,16L3:
LOOPL1
L1:
SHLAX,1HLT
JCL2
11.有一个首地址为ARRAY的N个字的数组,请编程序使该数组中的数按照从大到小的次序排序。
(采用冒泡排序算法)
DATASEGMENT
MOVBX,0
ARRAYDWA1,A2,A3,…,AN
LOOP2:
MOVAX,ARRAY[BX]
DATAENDS
CMPAX,ARRAY[BX+2]
PROGSEGMENT
JGECONTINUE
ASSUMEDS:
PROG,DS:
DATA
XCHGAX,ARRAY[BX+2]
MAINPROCFAR
MOVARRAY[BX],AX
START:
PUSHDS
CONTINUE:
ADDBX,2
SUBAX,AX
LOOPLOOP2
PUSHAX
MOVCX,DI
MOVAX,DATA
LOOPLOOP1
MOVDS,AX
RET
MOVCX,N
MAIN
ENDP
DECCX
PROG
ENDS
LOOP1:
MOVDI,CX
ENDSTART
存储器设计应用题
1.已知有SRAM芯片62256(32K×8)及EPROM芯片27256(32K×8),现用这两种芯片构成8088最小系统内存的一部分,其中SRAM所占的地址空间为40000H--47FFFH,EPROM所占的地址空间为F8000H--FFFFFH,试设计出其原理图。
2.给8088CPU系统扩展32K的ROM,且所选用的存储器芯片为8K×8,地址译码器为74LS138,ROM的地址范围从60000H~存储器芯片为8K×8,可知芯片容量为8K,地址线为13条,数据线为8条,而系统要求容量为32K,位数是8,因此为字扩展。
需要的芯片为4个
存储器芯片的地址为:
1)、地址译码器:
3个输入端的信号中必须有:
A13,A14,其对应的位置不同,输出的引脚也不同。
只要输入信号与输出信号一致,且连接到相应的存储器芯片上。
2)、数据线连接正确
3)、地址线连接正确67FFFH,要求写出每一个存储器芯片的地址范围,
画出逻辑连线图。
3.设某系统的CPU有16根地址线A15-A0、8根数据线D7-D0。
现需扩展6KB的ROM,地址范围为:
0000H-17FFH,采用2716芯片。
(1)请写出存储器器件2716的数据线和地址线的条数;
(2)计算ROM的芯片数量;
(3)设计存储器扩展原理图,并写出每片ROM的地址范围。
1)存储器2716的数据线有8条,地址线有11条。
2)因为2716的容量为2KB,要扩展6KB,所以需要三片。
3)原理图如下:
4.已知RAM芯片结构如图所示,回答下列问题:
1)该芯片容量为多少?
若要求构成一个2K×8的RAM阵列,需几个这样的芯片?
4
2)若RAM阵列组的起始地址为E1000H,画出存储器系统与8086的电路连接图(8086工作在最小模式),并写出每组RAM芯片的地址空间。
3)编程:
将缓冲区中的10个数据写进E1000开始的10个单元中,并说明如何查看结果?
MOVAX,0E100HMOVCX,10
MOVES,AXCLD
MOVSI,OFFSETBUFREPMOVSB
MOVDI,O
查看结果DE100:
0
5.设某微机系统需要扩展内存RAM32KB,扩充的存储器空间为10000H开始的连续存储区域。
存储器芯片采用16K×8的RAM芯片,CPU使用8088。
1)选用芯片,画出逻辑连接图;
2)写出各片RAM的所在地址区域。
答案:
2)地址范围第一片10000H--13FFFH
第二片14000H--17FFFH
6.用4K×4的EPROM存储器芯片组成一个16K×8的只读存储器。
试问:
(1)该只读存储器的数据线和地址线的位数。
(2)根据题意需要多少个4K×4的EPROM芯片?
(3)画出此存储器的组成框图。
答案:
(1)该存储器有14位地址线和8位数据线。
(2)共需总芯片数为8片。
8255编程题
1.一个8088系统中有一8255A,8255A各口设置如下:
A组与B组均工作于方式0,A口为数输入,B口为输出,C口高位部分为输出,低位部分为输入,A口地址设为40H。
1)写出工作方式控制字
2)对8255A初始化
3)从A口输入数据,将其取反后从B口送出
1)10010001B即91H
2)MOVAL,91H;OUT43H,AL
3)INAL,40H;NOTAL;OUT41H,AL
2.设8255A的4个寻址地址号为0060H~0063H,试编写下列各种情况下的初始化程序。
1)将A组和B组设置成方式0,A口,B口为输入,C口为输出。
2)将A组工作方式设置成方式2,B组为方式1,B口作为输出。
3)将A口,B口均设置成方式1,均为输入,PC6和PC1为输出.
4)A口工作在方式1,输入;B口工作在方式0,输出;C口高4位配合A口工作,低4位为输入。
1)MOVAL,92H2)MOVAL,0C4H3)MOVAL,0B6H4)MOVAL,0B1H
OUT63H,ALOUT63H,ALOUT63H,ALOUT63H,AL
3.8255A控制字如下,8255A端口地址为:
160H、162H、164H、166H,端口A方式0输出,端口B方式0输入,端口C方式0输出。
编写程序实现初始化,并将端口B内容的2倍与端口C的内容求和后将结果取反送到端口A。
根据端口地址知,端口A地址为:
160H,端口B地址为:
162H,端口C地址为:
164H,控制端口地址为:
166H。
端口A方式0输出,端口B方式0输入,端口C方式0输入知:
控制字8BH。
MOV AL, 8BHMOV DX,164H
MOV DX, 0166HIN AL,DX
OUT DX, ALADD AL,BL
MOV DX, 0162HNOT AL
IN AL, DXMOV DX,0160H
MOV BL, ALOUT DX, AL
ADD BL, AL
4用一片8255A芯片设计一基于PC系统总线的I/O接口板,要求:
1)8255A占用的端口地址为300H--306H,画出原理图。
2)设8255A的PA、PB、PC口均工作在方式0,PA口为输入,PB、PC口均为输出,编写8255的初始化程序片段(已知8255A控制字为10010000B)。
3)编写程序片段,将从PA口读入的状态送至PB口输出。
(2)MOVDX,306H
MOVAL,90H
OUTDX,AL
3)MOVDX,300H
INAL,DX
MOVDX,302H
OUTDX,AL
5.已知8255的控制口地址为236H,开关信息接在PB口,发光二极管接在PA口,使用8255作为接口芯片,读开关量的状态,并用发光二极管显示输出。
在将开关的信息存放在FIRST单元的同时,发光二极管完成其信息的显示。
要求画出完整的线路连接图并设计相应的程序。
(8086工作在最小模式,8255A相应的控制字为82H)。
MOVDX,236H
MOVAL,82H
OUTDX,AL
MOVAX,SEGFIRST
MOVDS,AX
MOVSI,OFFSETFIRST
LOP:
MOVDX,232H
INAL,DX
MOV[SI],AL
MOVDX,230H
OUTDX,AL
JMPLOP
68255A的工作方式控制字和C口的按位置位/复位控制字有何差别?
若将C口的PC2引脚输出高电平(置位),假设8255A控制口地址是303H,程序段应是怎样的?
答:
工作方式控制字的最高位为1,而C口的按位置位/复位控制字最高位为0
MOVDX,303H
MOVAL,80H
OUTDX,AL
MOVAL,05H
OUTDX,AL
7已知8255A的控制口地址为236H,LED采用共阳级接法。
字型信息接在PB口,字位信息接在PA口,使用8255A作为接口芯片,在两块LED上显示自己的学号。
要求画出完整的线路连接图并设计相应的程序(8086工作在最小模式,8255A相应控制字为80H)。
答案:
见图
MOVDX,236HLOP:
LOOPLOP
MOVAL,80HMOVDX,232H
OUTDX,ALMOVAL,nn;学号高位
MOVCX,000HOUTDX,AL
START:
MOVDX,232HMOVAL,2
MOVAL,nn;学号低位MOVDX,230H
OUTDX,ALOUTDX,AL
MOVAL,1LOP1:
LOOPLOP1
MOVDX,230HJMPSTART
OUTDX,AL
8.若打印机及其工作时序如图所示,当打印机不忙时(BUSY=0),向它送数据(设每次只传送1个字节)并在数据稳定时用负脉冲将数据存于打印机内部,同时设置打印机忙信号,即BUSY=1。
1)用可编程接口芯片8255A将打印机与总线相连接起来。
若规定8255A的地址为0320H~032FH任选,试画出连接电路图。
2)数据段中首地址为BUFFER的区域中存放着100字节要打印的字符,试编写包括8255A初始化的打印程序,并将100个字符打印出来。
9.在一个系统中,8255A的四个端口地址分别为:
420H、422H、424H和426H。
要求:
1)初始化8255A,使端口A、B、C均工作于方式0,端口A作为输入端口,端口B和C作为输出端口。
2)将端口A输入的信息取反后直接输出到端口B。
3)检测端口A输入的信息的PA7位。
当PA7=1时,端口C输出FFH,否则,输出00H。
请编写程序段,完成上述功能(程序要加注解)。
答案:
1)MOVAL,90H
MOVDX,426H
OUTDX,AL
2)MOVDX,420H
INAL,DX
MOVDX,422H
NOTAL
OUTDX,AL
3)MOVDX,420H;从端口A输入信息
INAL,DX
TESTAL,80H;测试PA7是否为0
MOVAL,0
JZKO;如果为0,输出0
MOVAL,0FFH;否则输出0FFH
KO:
MOVDX,424H;端口C的地址
OUTDX,AL
8253编程题
1设8253A三个计数器的端口地址为100H、101H、102H,控制寄存器端口地址103H。
输入时钟为2MHz,让1号通道周期性的发出方波,其周期为1ms,试编写初化程序段。
答:
要输出脉冲周期为1ms,输出脉冲的频率是
,当输入时钟频率为2MHz时,计数器初值是
。
使用计数器1,先加载低8位,后加载高8位,设为方式3,二进制计数,控制字是76H。
设控制口的地址是103H,计数器1的地址是101H。
程序段如下:
MOV
DX,103H
MOV
AX,2000
MOV
AL,76H
OUT
DX,AL
OUT
DX,,AL
MOV
AL,AH
MOV
DX,101H
OUT
DX,AL
2.某系统中8253芯片的通道0至通道2和控制端口的地址分别为0FFF0H~0FFF6H,定义通道0工作在方式2,CLK0=2MHz,要求输出OUT0为1KHz的速率波;定义通道1工作方式0,其CLK1输入外部计数事件,每计满1000个向CPU发出中断请求。
试写出8253通道0和通道1的初始化程序。
MOVDX,0FFF6HMOVDX,0FFF6H
MOVAL,35HMOVAL,61H
OUTDX,ALOUTDX,AL
MOVAX,2000HMOVAL,10H
MOVDX,0FFF0HMOVDX,0FFF2H
OUTDX,ALOUTDX,AL
MOVAL,AH
OUTDX,AL
3.若要采用一片8253产生近似为1Hz的对称方波,已知时钟频率为2MHz,8253地址为350-353H,试编写8253初始化程序,并说明通道引脚的连接方法。
答案:
时钟频率为2MHz,要分频至1Hz,分频系数为2000000。
一个8253的计数器分频系数最大为65536,所以必须用两个计数器串联起来工作。
即将2MHz的时钟连接到0#计数器的输入端CLK0,OUT0连接到CLK1,1Hz的对称方波由1#计数器的输出端OUT1输出。
设0#计数器分频系数定为10000,则OUT0输出200Hz波形。
1#计数器分频系数定为200。
0#计数器输出的200Hz波形作为1#计数器的时钟信号,经1#计数器200分频后得到1Hz的波形。
两个计数器均初始化为方式3,初始化程序如下:
MOVDX,353HOUTDX,AL
MOVAL,37HOUTDX,AL
OUTDX,ALINCDX
MOVAL,77HMOVAL,00H
OUTDX,ALOUTDX,AL
SUBDX,3MOVAL,02H
MOVAL,00HOUTDX,AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 程序设计