微机原理习题参考答案(黄冰版)_第1页
微机原理习题参考答案(黄冰版)_第2页
微机原理习题参考答案(黄冰版)_第3页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术第一章绪论 +65 w=01000001B +115 io=01110011B -65 1o=11000001B+65补=+65原=01000001B+115补=+115原=01110011B-65补=10111111B-1151o=1111OO11B-115补=10001101B方法:正数的原码、反码、补码相同负数的补码在原码的根底上除过符号外,先取反,再加1。 +120 1o=OOOOOOOOO1111OOOB+120补=+120原=000000001111000B -120 10 补 +230 1o=OOOOOOOO111OO11OB +230补=+230原=00000

2、00011100110B -230 10 补方法:与上题相同,只是扩展了位数,用16位表示 55001101118901011001-11511110011-7总结:知道补码,求原码或数值的方法:如果是正数,直接转换。如果是负数用以下三种方法: 根据X补补=X求得例如 10001101 各位取反 11110010 加一 11110011 转换 -115 求补的逆运算例如:11111001先减一 11111000各位取反10000111转换 -7 -模+补码转换结果-例如:10001101转换-13模+补码转换结果 128-13=115加负号-15此题冋题不太明确例如:如果手边有手册或是知道产品

3、的型号,就可从手册中查到微处理器的处理位数。也可以根据系统总线得知。因为系统总线是公共的数据通道,表现为数据传输位数和总线工作时钟频率。第二章intel 8086微处理器2.275422H 字节单元:9CH字单元:249CH75424H 字节单元:5DH 字单元:0E65Dh根据物理地址=段地址*10H+偏移地址得到:段地址偏移地址物理地址1000H117AH1117AH1025H0F2AH1117AH1109H00EAH1117AH我们可以看到不同段的段地址,在不同的偏移地址下,可以对应相同的物理地址,也就相同的存储空间。说明在分配段时是重叠的2.4 每个段区最大可占用 64KB的地址范围,

4、因为存放器都是16位的,216B=64KB。不允 许重叠,那么最多可分16个段区,因为8086CPU有20条地址线,寻址范围1MB , 1MB/64KB=16 个。2.6指令目的操作数寻址方式源操作数寻址方式MOV ARRAY, BX直接寻址r存放器寻址ADC CX, ALPHABXSI存放器寻址带位移的基址变址寻址AND GAMMADI,11011000B带位移的变址寻址立即数寻址INC BL存放器寻址r隐含寻址TEST ES:SI, DX存放器间接寻址存放器寻址SBB SI, BP存放器寻址存放器间接寻址 源操作数是立即数寻址,AX=1200H 源操作数是存放器寻址,AX=BX=0100H

5、 源操作数是直接寻址,将2000H X 10H+1200H=21200H 和21201H的内容取出,赋给AX=4C2AH 源操作数是存放器间接寻址 ,将2000H X 10H+0100H=20220H和20221H的内容取出,赋给 AX=3412H 源操作数是存放器相对寻址 ,将2000H X 10H+0100H+1100H=21200H 和21201H的内容取 出,赋给AX=4C2AH 源操作数是基址变址寻址 ,将2000H X 10H+0100H+0002H=202202 和202203H的内容取 出,赋给AX=7856H 源操作数是基址变址相对寻址,将 2000H X 10H+0100H

6、+0002H+1100H=21202H 和21203H的的内容取出,赋给AX=65B7H指令源操作数寻址方式物理地址MOV AX, 00ABH立即数寻址跟随在指令后,有cs:ip决定MOV AX,BX存放器寻址在存放器中MOV AX,100H直接寻址2000H X 10H+100H=20220HMOV AX,BX存放器间接寻址2000H X 10H+0100H=20220HMOV AX,BP存放器间接寻址1500H X 10H+0010H=15010HMOV AX,BX+10注意是十 进制带位移的基址寻址2000H X 10H+0100H+0AH=2022AHMOV AX,BXSI基址变址寻址

7、2000H X 10H+0100H+00A0H=201A0HMOV AX,V AL直接寻址2000H X 10H+0050H=20050HMOV AX,ES:BX存放器间接寻址2100H X 10H+0100H=21100HMOV AX,SI存放器间接寻址2000H X 10H+00A0=200A0HMOV AX,V ALBX带位移的基址寻址2000H X 10H+0100H+0050H=20220HMOV AX,V ALBXSI带位移的基址变址寻 址2000H X 10H+0100H+00A0H+0050H=201F0H2.9指令Sp值PUSH CX1FFAH66H1FFBH55HPUSH

8、BX1FFCH44H1FFDH33HPUSH AX1FFEH22H1FFFH11H指令sp值POP AX1FFCHAX=5566HBX=3344HPOP CX1FFEHCX=3344HSP=1FFEH2.10指令AX的值MOV AX,0AX=0000HDEC AXAX=0FFFFHADD AX,7FFFHAX=7FFEHADD AX,2AX=8000HNOT AXAX=7FFFHSUB AX,0FFFFHAX=8000HADD AX,8000HAX=0000HOR AX,0BFDFHAX=0BFDFHAND AX,0EBEDHAX=0ABCDHXCHG AH,ALAX=0CDABHSAL AX

9、,1AX=9B56H(CF=1)RCL AX,1AX=36ADH(AF=1)0110 0010 1010 OOOOB+1001 1101 0110 OOOOB10000 0000 0000 0000B (0000H)AF=0,SF=0,ZF=1,CF=1,OF=0,PF=10110 0010 1010 0000B+0100 0011 0010 0001B1010 0101 1100 0001B (0A5C1H)AF=0,SF=1,ZF=0,CF=0,OF=1,PF=00001 0010 0011 0100B 0100 1010 1110 0000B1011 0101 0010 0000B补码形

10、式1100 0111 0101 0100B 0C754H AF=0 SF=1 ZF=0 CF=1 OF=0 PF=01001 0000 1001 0000B 0100 1010 1110 0000B1011 0101 0010 0000B补码形式0100 0101 1011 0000B (45B0H) AF=0 SF=0 ZF=0 CF=0 OF=1 PF= 1 BX=0061H BX=OOFBH BX=001CH本条语句只对标志位有影响,不存贮结果 BX=OOOOH BX=00E3HBX=0110 1101 0001 0110=6D16HBX=OOOO 0000 1101 1010=00DA

11、H DX=0000 0000 1011 1001 DX=0000 0000 1011 1001 DX=0000 0000 1011 1001DX= 0000 0000 0101 1100=005CHDX= 0000 0000 0001 011 仁0017HDX= 0000 0101 1100 1000=05C8H DL= 1011 1001DX=0000 0000 0111 0010=0072H DX=0000 0000 1011 1001DX=0010 0000 0001 011 仁2022H DL= 1011 1001DX= 0000 0000 1100 110 仁00CDH DH=000

12、0 0000DX=0000 0000 1011100仁00B9H DX=0000 0000 1011 1001DX=0000 0101 11001100=05CCHCF=0 DL= 1011 1001DL=0000 0000 11011100=00DCHCF=1方法一:循环移位方法二:逻辑右移MOV CL,04HMOV CL,04HROL AL,CLSHR AL,CL第三章宏汇编语言程序设计3.11AX=0001H ;2AX=0002H3CX=0014H4DX=0028H5CX=0001H1ARRAY DB 56H,78,0B3H,1002DATA DW 2965H,45H,2965,0A6H

13、3ALPHADW 0C656H,1278H4 BETA DB 2 DUP 23,5 DUP A ',10 DUP 1,2,20 DUP?5STRING DB ' THIS IS A EXAMPE '6COUNTEQU 100DATA_SEGSEGMENTDATA1DBDATA SEG,MENT 'DATA2DB72,65,-10DATA3DB109,98,21,40DATA4DB10 DUP(0)DATA5DB12345'DATA6DW7,9,298,1967DATA7DW785,13475DATA8DWDB ($-DA TA6)-(DATA6-DATA

14、1)41H42H43H44H4CH 7657H?01H03H01H03HBYTE_V ARR00H00H01H00H00H00H00H01H00H00H00H01H00H00H01H00H00H00H01H?42H41H44H43H1DH1FHOOHDATA_SEG ENDS1MOV BX, OFFSET BUF12) MOV CL BYTE PTR BUF2+23) MOV BUF3+9, A6H4) COUNT EQU BUF3-BUF1DATA_SEG SEGMENTAPPAYDB10 DUP (29H)ALPHADB-25,4,10,76,3BUFFERDB100 DUP(?)DATA

15、_SEG ENDSDATA_SEG SEGMENT BCD1 DB ?,? BCD2 DB ?DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG,ES:DA TA_SEG START: MOV AX,DA TA_SEGMOV DS,AXMOV DS, AXMOV CL, 04HMOV SI, OFFSET BCD1MOV AL, SISAL AL,CLMOV BL,SI+1AND BL,0FHADD AL,BLMOV BCD2,ALMOV AH,4CHINT 21HCODE ENDSENDSTART1)MOVCH, 32HCH=32H2

16、)ADDCH, 2AHCH=5CH3)SHLCH, 1CH=0B8H4)MOV BXNUM+9,CHCH=0B8HDA TA_SEG SEGMENTX DB ?Y DB ?W DB ?Z DB ?R DB ?DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG,ES:DA TA_SEG START: MOV AX, DATA_SEGMOV DS, AXMOV DS, AXMOV AL, WSUB AL, XCBWIDIV 0AHMOV R, AHIMUL YIMUL AXMOV AH, 4CHINT 21H CODE ENDS END S

17、TARTDA TA_SEGSEGMENTSTR1DB 'THIS IS A DOG'STR2DB 'THIS IS A COCK'COUNT DB $-STR2NUM DB ?DA TA_SEG ENDS CODE SEGMENTASSUME CS: CODE, DS:DA TA_SEG,ES:DATA_SEGSTART: MOVAX, DATA_SEGMOVDS, AXMOVDS, AXMOVES, AXMOVCH,0MOV CL, COUNTCLDMOVSI,OFFSETSTR1MOVDI,OFFSETSTR2REPZCMPSBANDSI,000FHMOVA

18、X,SIMOV NUM, ALCODE ENDSEND START3.16DATA SEGMENTSRCBUF DB 80 DUP ?DSTBUF DB 80 DUP ?DATA ENDSCODE SEGMENTASSUME CS : CODE, DS: DATASTART:MOVAX ,DATAMOVDS,AXMOVSI,OFFSET SRCBUFMOVDI,OFFSET DSTBUFMOVCX,80LOP1:MOV AL , SIINC SICMP AL , ODHJE NEXTMOV DI , ALINC DINEXT :LOOP LOP1MOV AH ,4CH INT 21HCODE

19、ENDS END START3.17DATA SEGMENTBUF DB n DUP (?)SUM DB ODATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,nMOVSI,OFFSET BUFLOP1:MOVAL,SIINC SICMP AL,OJGEINCNEXTSUMNEXT:LOOPLOP1MOVAH, 4CHINT21HCODE ENDSEND START3.18DATA SEGMENTBUF DW n DUP(?)BUF1 DW n DUP(?)BUF2 DW n DUP(?) DATA

20、 ENDS CODE SEGMENTASSUME CS:CODE, DS:DA TAMOVAX,DATAMOVDS,AXMOVCX,nMOVSI,OFFSETBUFMOVDI,OFFSETBUF1START:MOV BX, OFFSET BUF2LOP1:MOVAX, SIINCSIINCSICMPAX, 0000HJGENEXT1MOVBX, AXADDBX, 02HJMPLOP2NEXT1:MOVDI, AXADDDI, 2LOP2:LOOPLOP1MOVAH, 4CHINT21HCODE ENDSENDSTARTSTACK SEGMENT STACKDB 256 DUP ?STACK E

21、NDSDATA SEGMENTBUF DB Thisis a string ','$'DATA ENDSCODE SEGMENTASSUME CS:CODE. DS:DA TA; SS:STACKSTART: MOV AX, DA TAMOV DS, AXMOV SI,OFFSET BUFTACKCHAR: MOV DL,SICMP DL, '$'JZ DONECMP DL, 'a'JB NEXTSUB DL,20HNEXT:MOV AH,02HINT 21HINC SIMP TAKECHARDONE:MOV AH,4CHINT 21HC

22、ODE ENDSEND START320DATA_SEGSEGMENTDATXDB ?DATYDB ?DATZDB ?DA TA_SEGENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG START: MOV AX,DA TA_SEGMOV DS,AXMOV AL,DATXMOV BL,DATYCMP AL,BLJS NEXTMOV DATZ,ALJMP DONENEXT:MOV DA TZ,BLDONE:MOV AH,4CHINT 21HCODEENDSEND STARTDATA_SEGSEGMENTDATADB ?DATBDB ?DATCDB ?DAT

23、DDB ?DATA_SEGENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG START: MOVMOVCMPJZAX,DA TA_SEGDS,AXDATA,0NEXTDATB,0JZ NEXTCMPCMP DATC,0JZ NEXTMOV AL,DATA ADD AL,DATB ADC AL,DATC MOV DATD,AL JMP DONENEXT: MOV DA TA,0MOVDA TB,0MOV DATC,0DONE: MOV AH,4CHINT 21HCODE ENDSEND START3.22 程序段是将十六进制数的 ASSII 码转化为十六进

24、制数 .本例是将大写字母 A 的 ASCII 变为十六进制数 ,将结果存入字符变量 HEXNUM 中。HEXNUM 变量中原来的内容未知,程序段执行后的内容是字符 A 的十六进制数 0AA TA_SEGSEGMENTN=10DATA1DBNDUP(?)DATA2DBNDUP(?)ADR1DW?ADR2DW?DATA_SEGENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEGSTART: MOVMOVAX, DATA_SEGDS, AXLEA SI, DATA1LEA DI,DA TA2MOV CX, NLOP1: MOV AH,SI CMP AH,DI JN

25、Z NOTEQUINC SIINC DILOOP LOP1 MOV AH,0FFH SAHF JMP DONE NOTEQU: MOV AH,0SAHFMOV ADR1,SI MOV ADR2,DI DONE:MOV AH,4CH INT 21H CODE ENDS END STARTDA TA_SEG SEGMENT COUNT=100BUF DB COUNT NUP(?)MAX DB ?DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG START: MOV AX, DA TA_SEGMOV DS, AXMOV SI, OFFSET

26、 BUFMOV CX,COUNT LOP1: MOV AH,1INT 21HMOV SI, ALINC SILOOP LOP1MOV SI,OFFSET BUFMOV CX,COUNTMOV AL, SI LOP2:CMP AL, SI+1JA NEXT2 XCHG AL,SI+1INC SI NEXT2 :LOOP LOP2MOV MAX,ALMOV AH, 4CHINT 21HCODE ENDSEND STARTDA TA_SEG SEGMENTBUF DB 10 DUP(?)STR1 DB Do you want input number(y/n)? ',0DH,0AH, 

27、9;$'STR2 DB Please input the numbers',0DH,0AH, '$' MAX DB ?MIN DB ?DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG START: MOV AX, DA TA_SEGMOV DS, AXMOV DX,OFFSET STR1MOV AH,09HINT 21HMOV DX,OFFSET STR2MOV AH,09HINT 21HMOV SI, OFFSET BUF MOV CX,10 LOP1:MOV AH,1INT 21HMOV SI, A

28、LINC SILOOP LOP1 MOV SI,OFFSET BUF MOV CX,9MOV AL, SILOP2:CMP AL, SI+1JA NEXT2 XCHG AL,SI+1INC SINEXT2 :LOOP LOP2MOV MAX,ALMOV SI,OFFSET BUFMOV CX,9MOV AL, SILOP3: CMP AL, SI+1JB NEXT3 XCHG AL,SI+1INC SINEXT3 :LOOP LOP3MOV MIN,ALMOV AH,4CHINT 21HCODE ENDSEND STARTDATA SEGMENTBUFF DB 10 DUP(?)DATA EN

29、DSCODE SEGMENTASSUME CS:CODE, DS:DA TA START: MOV AX,DATA MOV DS,AX MOV SI , OFFSET BUFF MOV CX,0AHLOP1: MOV AH,7INT 21HCMP AL,'$'JZ DONENEXT1 :CMP AL,'a'JGE NEXT2CMP AL,'z'JGE DONEJMP SHOW NEXT2 :SUB AL,20H SHOW :MOV DL,AL MOV AH,2 INT 21H LOOP LOP1 DONE :MOV AH,4CH INT 21H

30、CODE ENDS END STARTDATASEGMENTSTRBUFDB'ABCDEFGIJKLMN$OPQRSTUVWSXYZ'COUNTDB$-STRBUFADRBUFDB?DATAENDSCODESEGMENTASSUME CS:CODE, DS:DATA START: MOV AX, DA TA MOV DS, AX LEA SI, STRBUF MOV CH,0 MOV CL, COUNT LOP1: MOV AL, SI CMP AL,'$' JZ DONE INC SI LOOP LOP1 DONE: MOV ADRBUF,AL MOV AH,

31、4CH INT 21H CODE ENDSEND STARTSTACK SEGMENT STACK DW 256 DUP(?) TOP LABEL WORDSTACK ENDSDATA SEGMENTBUFF DB 1,2,3,4,5,6,7,8SUM DW 0000HDATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA,SS:STACK START: MOV AX,DA TAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,OFFSET TOPMOV CH,0MOV CL,8LOP1: MOV SI,OFFSET BUFF MOV AX,O

32、FFSET SUM PUSH AXMOV AH,0MOV AL, SIPUSH AXCALL FAR PTR FACTMOV DX,SUMADD SUM,DX INC SILOOP LOP1 MOV AH,4CHINT 21HCODE ENDSCODES SEGMENTASSUME CS:CODESFACT PROC FARPUSH BPMOV BP,SPPUSH BXPUSH AXMOV BX,BP+8MOV AX,BP+6CMP AX,0JE DONEPUSH BXDEC AXPUSH AXCALL FACTMOV BX,BP+8MOV AX,BXMUL WORD PTR BP+6 JMP

33、 RETURNDONE: MOV AX,01HRETURN:MOV BX,AXPOP AXPOP BXPOP BPRET 4FACT ENDPCODES ENDSEND START第五章半导体存储器128 81 In tel 10241K x 1 位:=1024片1 1128 82 In tel 2114 1K x 4 位:=256片1 4128 83 In tel 2128 2K x 8 位:=64片2 8128 84 In tel 2167 16K x 1 位: =16片64 1.16K8丄1=128片1K 121K=210有十条用作片内寻址316K=2 1414-10=4,有四条用作片间

34、寻址工程片选端地址线A19A16,A15-A14,A13A11,A10A0起始和结束地址Eprom1#Y0任意,10,000,变化*8000H*87FFFHEprom2#Y1任意,10,001,变化*8800H*8FFFFHEprom3#Y2任意,10,010,变化*9000H*97FFFH工程片选端地址线A19A16,A15-A14,A13A11,A10,A 9A0起始和结束地址Ram1#Y4,A10任意,10,100,1, 变化*A400H*A7FFHRam2#Y4,A10任意,10,100,0, 变化*A000H*A3FFHRam3#Y5,A10任意,10,101,1, 变化*AC00H

35、*AFFFHRam4#Y5,A10任意,10,101,0, 变化*A800H*ABFFH第六章 I/O接口技术答:1程序控制方式2中断控制方式3直接存储访问DMA丨方式区别:程序控制方式和中断控制方式都是采用软件形式,实现CPU与外设的数据传送,都要占用CPU的珍贵时间。DMA方式那么是一种由硬件实现的数据传送方式,无需占用CPU的时间就可实现数据高速传送。A3 1A2JINPUT PROC NEARMOV CX,80HLEA DI,BUFFPOLL: IN AL,29HTEST AL,01HJNZ POLLIN AL ,28HSTOSBMOV DL,ALMOVAH , 2INT 21HRET

36、第七章中断系统中断向量表IpCSIp堆栈(SS)=0300H (IP)=0040H (CS)=0100H (FLAGS)=0040H7.6 方法一 :直接置入法 PUSH DS MOV AX,0 MOV DS,AX MOV BX,36 LEA AX,INT_POUT MOV BX,AXMOV AX,SEG INT_POUT MOVBX+2,AXPOP DS 方法二 :dos 功能调用PUSH DSMOV AX,SEG INT_OUT MOV DS,AXLEA DX,INT_OUTMOV AX,2509HINT 21HPOP DS主程序段 : PUSH DSMOV AX, SEG TRANINT

37、MOV DS,AX LEA DX, TRANINT MOV AX,2579H INT 21HPOP DSMOV SI,OFFSET ASCNUMMOV CX,NUMBMOV DI,OFFSET BCDMMTRANINT : MOV AL,SIAND AL,0FHMOV DI,ALINC DIINC SIIRETMOV DX, 02C0HMOV AL,1BHOUT DX,AL ;ICW1MOV DX, 02C1HMOV AL,10HOUT DX,AL ;ICW2MOV DX, 02C1HMOV AL,0DHOUT DX,AL7.11 此题根据 OCW3 的设置来决定.以上包括初始化8259的局部

38、IN AL,51HMOV REG-ARR,ALIN AL,50HMOV AL,00001010BOUT 50H,ALIN AL,50HMOV REG-ARR+1 ,ALIN AL,50HMOV AL,00001011BOUT 50H,ALIN AL,50HMOV REG-ARR+2,AL;ICW4;读 IMR 的内容并存储;读取 OCW3 的内容 ,并进行设置;读取 IRR 的内容并存储;读取 OCW3 的内容 ,并进行设置;读取 ISR 的内容并存储设置中断向量表:PUSH DSMOV AX,0 ;中断向量表段地址送入 DSMOV DS,AXMOV BX,3500H;中断向量地址送入 BXM

39、OV AX,OFFSET IRQ0;中断向量填入中断向量表MOV BX,AXMOV AX,SEG IRQ0MOV BX+2,AXPOP DS其他四个中断向量地址分别设为4080H、4505H、5540H、6000H,向量名改为相应的即可,在此省略 初始化 8259A :MOV AL,13HOUT 20H,ALMOV AL,4BHOUT 21H,ALMOV AL,01HOUT 21H,AL;ICW1; ICW2 IRQ0 的中断类型码为 4BH ;ICW4DATA SEGMENT BUF DB 256 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA

40、 START:,MOV DX,DATAMOV DS,AXPUSH DSMOV AX,SEG INTPRMOV DS,AXLEA DX,INTPRMOV AX,250AHINT 21HPOP DSMOV DX,21HIN AL,DXAND AL,0FBHOUT DX,ALSTIHLTMOV DX,21HIN AL,DX 0R AL,04HOUT DX,ALMOV AH,4CHINT 21H ;中断效劳程序 INTPR: PUSH CXMOV CX,8MOV DL,0MOV DX,200H IN AL,DX MOV BL,ALLOP: RCL BL,1 JCZ NEXT LOOP LOPNEXT:

41、 INC DLCMP DL MOD 2,0 JNZ DISPMOV DX,201H OUT DX,AL DISP:MOV DL, 'N ' MOV AH,02HTA;用 dos 功能调用; 开放 IRQ2 中断;关闭 IRQ2 中断;计算 1 的个数;判断 1 的个数是,设置中断向量数还是偶数INT 21H;中断结束MOV AL,20HOUT 20H,ALIRET第八章常用接口芯片& 1 MOVAL,10011001MOV DX , 0063HOUT DX , AL MOVAL,11000000MOV DX , 0063HOUT DX , AL MOVAL,101101

42、10MOV DX , 0063HOUT DX , AL8. 2A9 A8 A7 A6 A5 A4 A3 A2 A1 A000011XXX00A 口地址060H00011XXX01B 口地址061H00011XXX10C 口地址062H00011XXX11控制字地址063H8. 3注意:下面是课件 P95页题目和图形,其中的口地址可通过一个138译码器获得硬件安排FA 口方式0下输出,PC 口的PC6作为选通输出信号STBPC2作为输入,接收打印机送来的忙/闲信号BUSY,当BUSY为1 时示忙,为0时示闲。主程序段:MOV C:X , 100;MOVSI, OFFSET BUFF ;MOVAL

43、 , 10000001B ;控制字,A组方式0,OUT0EFH , AL ; PA 口输出,PC 口高4位输出,低4位输入MOVAL , 00001100B ;置卩6为 1OUT0EFH, AL;LOP :IN AL,0EEH ;读打印机状态TEST AL,04H ;测试 PC2D2位JNZ LOP;打印机忙,继续测试MOVAL , SI;打印机闲,输出1个字符OUT0ECH, AL;MOVAL, 00001100B ;使PC6产生选通脉冲OUT0EFH , AL ;INC AL;OUT0EFH , AL ;INC SI;修改地址指针LOOPLOP86(1)注意:此题图只是示意的将地址按照要求

44、画出来了,其余的引脚没有画出计数器0工作于方式 3, 2000000/10000 =200 H为初值 N计数器 1 工作于方式 2, N=10000H计数器 2 工作于方式 2, N=10(H)MOV AL , 00010111B;计数器 0工作于方式 3,读低MOV DX,0DODFHOUT DX , AL ;MOV AL , 200H;MOV DX, 0DODCHOUT DX , ALMOV AL , 01010101B ;计数器1工作于方式2,读低,MOV DX,0DODFHOUT DX , AL ;MOV AX,10000H ; MOV DX,0DODDHOUT DX,ALMOV AL,AHMOV DX,ALMOV AL , 10010101B ;计数器2工作于方式2,读低,MOV DX,0DODFHOUT DX , AL ;MOV DX ,0ODODCMOV AL,10HOUT DX,ALA3A.1

温馨提示

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

最新文档

评论

0/150

提交评论