微机原理与接口技术程序设计

上传人:jin****ng 文档编号:194190456 上传时间:2023-03-13 格式:DOCX 页数:14 大小:337.53KB
收藏 版权申诉 举报 下载
微机原理与接口技术程序设计_第1页
第1页 / 共14页
微机原理与接口技术程序设计_第2页
第2页 / 共14页
微机原理与接口技术程序设计_第3页
第3页 / 共14页
资源描述:

《微机原理与接口技术程序设计》由会员分享,可在线阅读,更多相关《微机原理与接口技术程序设计(14页珍藏版)》请在装配图网上搜索。

1、程序设计题1、统计从01000H内存单元开始的100个字(WORD)型带符号数中的正数,负数 和零的字(WORD)个数?解:设正数个数存放于BX中,负数个数存放于DI中,零的个数存放于DX中MOVAX,0100HJZ ZEROMOVDS,AXJL NEGATMOVBX,0INC BXMOVDX,0JMP NEXT1MOVDI ,0ZERO:INC DXMOVSI ,0JMP NEXT1MOVCX,100NEGAT:INC DINEXT: MOVAX,SINEXT1 :ADD SI , 2CMPAX,0LOOP NEXT2、实现两个十六位二进制的加法,要求加数放在FIRST开始单元,被加数放在S

2、ECOND 开始单元,和数放在 SUM 单元解: MOV AX, FIRSTADD AX, SECONDMOV SUM, AX3 从 BUFF 单元起有一个字符串(长度小于 65535),以*结束,编写一个完整程 序求该字符串长度存入LENT单元,并统计字符串中含有大写英文字符的个数并 存入 COUNT 单元。要求源程序具备必要的伪指令和段说明。DATASEGMENTINCCXBUFFDB ABCD.*CMPAL, ALENTDW ?JCNEXTCOUNT DW ?CMPAL, ZDATAENDSJNCNEXTCODESEGMENTINCDXASSUME CS: CODE, DS:NEXT:I

3、NCBXDATASTART:MOVAX, DATAJMPLPMOVDS, AXDONE:INCCXLEABX, BUFFMOVLENT, CXMOVCX, 0MOVCOUNT, DXMOVDX, 0MOVAH, 4CHLP:MOVAL, BXINT21HCMPAL, *CODEENDSJZDONEENDSTART4.有一带符号8位数X存于DAT单元.编一个程序段判断该数,若x小于0则 将0FFH送MARK单元;若X等于0则将MARK+1单元置0FFH;若X大于0则置MARK+2单元为0FFH。JMPDONELPl:MOVMARK, 0FFHJMPDONELP2:MOVMARK+1 , 0FFH

4、DONE:HLT存放无符号整数,请编一个完整的程序实现公MOVAL, DATANDAL, ALJSLP1JZLP2MOV MARK+2, 0FFH5.已知有 X、 Y、 Z 三个字变量, 式Z= (X+Y) / (X-Y+600)(不考虑溢出情况)。DSEG SEGMENTSUB BX, YX DW ?ADD BX, 600Y DW ?MOV AX, XADD AX,YMOV DX,0DIV BXMOV Z,AXMOV AH,4CHINT 21HMAIN ENDPCSEG ENDSEND BEGINZ DW ?DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSE

5、GMAIN PROC FARBEGIN: MOV AX,DSEGMOV DS , AXMOV BX , X6AX 寄存器中存放着 4位十六进制数。试编写一个汇编语言程序,将这4 位十 六进制数分别转换为相应的 ASCII 码,并依次存放到 RESULT 数组的 4 个字节中去,要求用调用子程序的方法实现。HASC PROC NEARMOV DL,ALAND DL,0FHCMP DL,9JA L2ADD DL,30HL1: RETL2: ADD DL,37HJMP L1HASC ENDPRESULT DB 4 DUP(?)CODE ENDSEND STARTCODE SEGMENTASSUME

6、CS:CODE,DS:CODESTART: MOV BX,CODEMOV DS,BXMOV CL,4MOV BL,4MOV SI,OFFSET RESULTLP: CALL HASCMOV SI,DLINC SISHR AX,CLDEC BLJNZ LPEXIT: MOV AH,4CHINT 21H7写出对存放在 DX 和 AX 中的双字长数求补的指令序列。方法 1方法2方法 3MOV CX , 0NOT AXNEG DXSUB CX, AXNOT DXNEG AXMOV AX, CXADD AX,1SBB DX,0MOV CX, 0ADC DX,0SBB CX, DXMOV DX, CX8设

7、有两个等长字符串。试编写一个汇编语言程序,比较它们是否完全相同;若相同,则将字符Y送入AL中,否则,将字符N送入AL中。CODE SEGMENTREPE CMPSBASSUME CS:CODE,DS:CODEJNZ NESTART: MOV AX,CODEMOV AL,YMOV DS,AXJMP EXITMOV ES , AXNE: MOV AL,NCLDEXIT: MOV AH,4CHLEA SI, STRING1INT 21HLEA DI, STRING2STRING1 DBMOV CX, DISTRING2 DBSUB CX , SICODE ENDSXOR AX , AXEND STA

8、RT9写出程序段,把 DX, AX 中的双字右移四位。MOV CL,4SHR DX,CLSHRAX,CLSHLBL,CLMOVBL,DLORAH,BL9.编写一个完整的8086汇编语言程序,从附加段中首地址为ADR1 (变量名)连续存放的 100 个字型无符号整数中找出最大数,并将此数及其偏移地址分别放入变量 MAX 和 MAXM 中DATA SEGMENTMOV AX,ES:SIADR1 DW 100 DUP(?)LOP1:CMP AX,ES:SIMAX DW ?JAE LOP3MAXM DW ?MOV AX,ES:SIDATA ENDSMOV ES:MAXM,SICODE SEGMENTL

9、OP3:ADD SI,2ASSUMELOOP LOP1CS:CODE,DS:DATA,ES:DATAMAIN PROC FARMOV ES:MAX,AXMOV AX,DATAMOV AH,4CHMOV ES,AXINT 21HMOV SI,OFFSET ADR1MAINENDPMOV CX,100CODEENDSMOV ES:MAXM,SIEND MAIN10.已知(AX)=4BD5H,统计AX中1的个数和0的个数,并分别放在BL和DL中。编写程序段实现该功能。INC DLJMP L3L2: INC BLL3: LOOP L1HLTMOV AX,4BD5HMOV BL,0MOV DL,0MOV

10、 CX,16L1: SHL AX,1JC L211.有一个首地址为ARRAY的N个字的数组,请编程序使该数组中的数按照从大 到小的次序排序。(采用冒泡排序算法)DATA SEGMENTARRAY DW A1,A2,A3,,ANLOOP2:MOV BX,0MOV AX,ARRAYBXDATA ENDSCMPAX,ARRAYBX+2PROG SEGMENTJGE CONTINUEASSUME DS:PROG,DS:DATAXCHGAX,ARRAYBX+2MAIN PROC FARMOV ARRAYBX,AXSTART: PUSH DSCONTINUE:ADD BX,2SUB AX,AXLOOP L

11、OOP2PUSH AXMOV CX,DIMOV AX,DATALOOP LOOP1MOV DS,AXRETMOV CX,NMAINENDPDEC CXPROGENDSLOOP1: MOV DI,CXEND START存储器设计应用题1.已知有SRAM芯片62256 (32KX8)及EPROM芯片27256 (32KX8),现用这两 种芯片构成 8088 最小系统内存的一部分,其中 SRAM 所占的地址空间为 40000H-47FFFH, EPROM所占的地址空间为F8000HFFFFFH,试设计出其原理图。D0-D7A0-A7272-.S6A8-A14qe CSD0-D7D0-D7A0-A7A

12、0-A762256A8-A14A8-A14wR C:S .E或二 MW-Al 9A15-A17Al 62给 A188088CPU 系统扩展32K的ROM,且所选用的存储器芯片为8KX8,地址译码器为74LS138, ROM的地址范围从60000H存储器芯片为8KX8,可知芯片容量为8K,地址线为 13条,数据线为8条,而系统要求容量为32K,位数是8,因此为字扩展。需要 的芯片为 4个存储器芯片的地址为:1)、地址译码器:3个输入端的信号中必须有:A13, A14,其对应的位置不 同,输出的引脚也不同。只要输入信号与输出信号一致,且连接到相应的存 储器芯片上 。2)、数据线连接正确3)、地址线

13、连接正确67FFFH,要求写出每一个存储器芯片的地址范围, 画出逻辑连线图。D0-D3:D4-D7A1-A10WD8-D11D0-D3A0-A9CSD0-D3A0-A9cs-0E1000H-E17FFH偶地址D12-D15y-&L.J 13 4 65HEA1A1A1A1A1A1A1A1A1B或或-p.或与D0-D3iAO-A 9WKCSD0-D3AO-A 9WRCS0E100CH-E17FFH奇地址3.设某系统的CPU有16根地址线A15-A0、8根数据线D7-D0。现需扩展6KB的ROM,地址范围为:0000HT7FFH,采用2716芯片。(1)请写出存储器器件 2716 的数据线和地址线的

14、条数;(2)计算ROM的芯片数量;(3)设计存储器扩展原理图,并写出每片 ROM 的地址范围 1)存储器2716的数据线有 8 条,地址线有 11 条。2)因为2716的容量为2KB,要扩展6KB,所以需要三片。3)原理图如下:DOD71 2 3 V 41 1-1- 5 1A AA + 止与 8086 的电路连接图( 8086 工作在最小模式),并写出每组 RAM 芯片的地址空 间。3) 编程:将缓冲区中的 10 个数据写进 E1000 开始的 10 个单元中,并说明 如何查看结果?A1-A1GDlDlS,0-粧 A0-A9D0-C3AO-A 9D0-L3n(i-r3AJ0-A9lire?WK

15、WKcTrcsOElOOOH-ElTFm偶地応奇I也址MOV AX,0E100HMOV CX,10MOV ES , AXCLDMOV SI,OFFSET BUF REP MOVSBMOV DI , O 查看结果 D E100:05.设某微机系统需要扩展内存RAM 32KB,扩充的存储器空间为10000H开始的 连续存储区域。存储器芯片采用16KX8的RAM芯片,CPU使用8088。1 )选用芯片,画出逻辑连接图;2)写出各片 RAM 的所在地址区域。答案:2) 地址范围 第一片 10000H-13FFFH第二片 14000H-17FFFH6.用4KX4的EPROM存储器芯片组成一个16KX8的

16、只读存储器。试问:(1) 该只读存储器的数据线和地址线的位数。(2) 根据题意需要多少个 4KX4 的 EPROM 芯片?(3) 画出此存储器的组成框图。答案:(1 )该存储器有1 4位地址线和8位数据线。(2)共需总芯片数为8片。J28255 编程题1一个8088系统中有一 8255A, 8255A各口设置如下:A组与B组均工作于方式 0, A 口为数输入, B 口为输出, C 口高位部分为输出,低位部分为输入, A 口地 址设为 40H。1) 写出工作方式控制字2) 对 8255A 初始化3) 从 A 口输入数据,将其取反后从 B 口送出1)10010001B 即 91H2) MOV AL

17、, 91H; OUT 43H, AL3) IN AL, 40H;NOT AL;OUT 41H, AL4船刘KPROM2.设8255A的4个寻址地址号为0060H0063H,试编写下列各种情况下的初始化 程序。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,0C4H 3) MOVAL,0B6H4) M

18、OVAL,0B1HOUT 63H ,ALOUT 63H ,ALOUT 63H ,ALOUT 63H ,AL3. 8255A 控制字如下,8255A 端口地址为:160H、162H、164H、166H,端口 A 方式0输出,端口B方式0输入,端口C方式0输出。编写程序实现初始化,并 将端口 B内容的2倍与端口 C的内容求和后将结果取反送到端口 Ao根据端口地址知,端口 A地址为:160H,端口 B地址为:162H,端口 C地址为: 164H,控制端口地址为:166H。端口 A方式0输出,端口 B方式0输入,端口 C 方式 0 输入知:控制字 8BHoMOV AL, 8BHMOV DX, 164H

19、MOV DX, 0166HINAL, DXOUT DX, ALADD AL, BLMOV DX, 0162HNOT ALINAL, DXMOV DX, 0160HMOV BL, ALOUT DX, ALADD BL, AL4 用一片8255 A芯片设计一基于PC系统总线的I/O接口板,要求:1)8255A占用的端口地址为300H-306H,画出原理图。2)设 8255A 的 PA、 PB、 PC 口均工作在方式 0, PA 口为输入, PB、 PC 口均 为输出,编写8255的初始化程序片段(已知8255A控制字为10010000B)。3)编写程序片段,将从PA 口读入的状态送至PB 口输出。

20、DOD7IORRDPAOPA7IOWAlWKAOA2AOA3Alr-L-7-89 o aaam或门电路PBOPB78255ACSPCOPC7(2)MOVDX,306HMOVAL,90HOUTDX,AL3) MOVDX,300HINAL,DXMOVDX,302HA15dOd7OUT DX, AL5.已知8255的控制口地址为236H,开关信息接在PB 口,发光二极管接在PA 口, 使用 8255 作为接口芯片,读开关量的状态,并用发光二极管显示输出。在将开 关的信息存放在FIRST单元的同时,发光二极管完成其信息的显示。要求画出完 整的线路连接图并设计相应的程序。(8086工作在最小模式,825

21、5A相应的控制 字为 82H)。或门电路MOVDX, 236HMOVAL,82HOUTDX,ALMOVAX,SEG FIRSTMOVDS,AXMOVSI,OFFSET FIRSTLOP:MOVDX,232HINAL,DXMOVSI, ALMOVDX,230HOUTDX,A LJMPLOP68255A的工作方式控制字和C 口的按位置位/复位控制字有何差别?若将C口的PC2引脚输出高电平(置位),假设8255A控制口地址是303H,程序段应是 怎样的?答:工作方式控制字的最高位为1,而C 口的按位置位/复位控制字最高位为0 MOV DX, 303HMOV AL, 80HOUT DX, ALMOV

22、AL, 05HOUT DX , AL7 已知 8255A 的控制口地址为 236H ,LED 采用共阳级接法。字型信息接在 PB 口, 字位信息接在 PA 口,使用 8255A 作为接口芯片,在两块 LED 上显示自己的学号。要求画出完整的线路连接图并设计相应的程序( 8086 工作在最小模式, 8255AdOd7=:IOR low Al 5r1-r或门电路DOD7RDPBOPE7AOAl8255APAIFAO相应控制字为 80H)。答案:见图MOV DX, 236HMOV AL, 80HOUT DX, ALLOP : LOOP LOPMOV DX,232HMOV AL,nn ;OUT DX,

23、学号高位ALMOV CX ,000HSTART:MOV DX,232HMOV AL,2MOV AL,nn ;学号低位MOV DX, 230HOUT DX,ALOUT DX, ALMOV AL,1LOP1:LOOP LOP1MOV DX ,230HJMP STARTOUT DX,AL叫:|BUSY8若打印机及其工作时序如图所示,当打印机不忙时(BUSY=O),向它送数据(设每次只传送 1 个字节)并在数据稳定 时用 负脉冲将数据存于打印机内部, 同时设置打印机忙信号,即 BUSY =1。1)用可编程接口芯片 8255A 将打 印机与总线相连接起来。若规定 8255A 的地址为0320H032FH

24、任选,试画出 连接电路图。2)数据段中首地址为 BUFFER 的 区域中存放着100字节要打印的字符,试编写包括8255A初始化的打印程序,并将100个字符打印出来。9在一个系统中,8255A的四个端口地址分别为:420H、422H、424H和426H。 要求:1)初始化8255A,使端口 A、B、C均工作于方式0,端口 A作为输入端口, 端口 B和C作为输出端口。2)将端口 A输入的信息取反后直接输出到端口 Bo3)检测端口 A输入的信息的PA7位。当PA7=1时,端口 C输出FFH,否则, 输出 00Ho请编写程序段,完成上述功能(程序要加注解)答案:1 )M0V AL,90H2)M0V

25、DX, 426H0UT DX, ALM0V DX, 420H3)IN AL, DXM0V DX, 422HN0T AL0UT DX, ALM0V DX, 420H;从端口 A 输入信息IN AL, DXTEST AL, 80H;测试PA7是否为0M0V AL, 0JZ K0M0V AL, 0FFH;如果为 0,输出 0;否则输出 0FFHK0:M0V DX, 424H;端口 C 的地址8253 编程题0UT DX, AL1设8253A三个计数器的端口地址为100H、101H、102H,控制寄存器端口地址 103H。输入时钟为2MHz,让1号通道周期性的发出方波,其周期为1ms,试编写 初化程序

26、段。1答:要输出脉冲周期为1ms,输出脉冲的频率是二1x103,当输入时钟频1X10 -32 x 103率为2MHz时,计数器初值是=2000 o1 XX103使用计数器 1,先加载低8位,后加载高8位,设为方式3,二进制计数,控制 字是76Ho设控制口的地址是103H,计数器1的地址是101H。程序段如下:M0VDX,103HM0VAX, 2000M0VAL,76H0UTDX,AL0UTDX,ALM0VAL,AHM0VDX,101H0UTDX,AL2.某系统中8253芯片的通道0至通道2和控制端口的地址分别为0FFF0H0FFF6H, 定义通道0工作在方式2,CLK0=2MHz,要求输出0U

27、T0为1KHz的速率波;定义 通道1工作方式0,其CLK1输入外部计数事件,每计满1000个向CPU发出中断 请求。试写出 8253通道0和通道1 的初始化程序。M0V DX,0FFF6HM0V DX,0FFF6HM0V AL,35HM0V AL,61H0UT DX,AL0UT DX,ALM0V AX,2000HM0V AL,10HM0V DX,0FFF0HM0V DX,0FFF2H0UT DX,AL0UT DX,ALM0V AL,AH0UT DX,AL3. 若要采用一片 8253 产生近似为 1Hz 的对称方波,已知时钟频率为 2MHz,8253 地址为350-353H,试编写8253初始化

28、程序,并说明通道引脚的连接方法。答案:时钟频率为2MHz,要分频至1Hz,分频系数为2000000。一个8253的计数器分频系数最大为 65536,所以必须用两个计数器串联起来工作。即 将2MHz的时钟连接到0#计数器的输入端CLKO,0UT0连接到CLK1,1Hz的对称 方波由1#计数器的输出端0UT1输出。设0#计数器分频系数定为10000,则0UT0 输出200Hz波形。1#计数器分频系数定为200。0#计数器输出的200Hz波形作为 1#计数器的时钟信号,经1#计数器 200 分频后得到 1Hz 的波形。两个计数器均 初始化为方式 3,初始化程序如下:M0VDX,353H0UTDX,ALM0VAL,37H0UTDX,AL0UTDX,ALINCDXM0VAL,77HM0VAL,00H0UTDX,AL0UTDX,ALSUBDX,3M0V AL, 02HM0VAL,00H0UTDX,AL

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!