16201350272001黄荣超第7章汇编语言程序设计7.5运行程序写出结果:AH=_______A=_____CL=_______MOVAL,35HMOVAH,0MOVCL,4SHLAX,CLSHRAL,CL7.6STRING1DB‘ABC’STRING2DB‘DEFGHI’…MOVAH,01;从键盘输入一个1~9之间的字符INT21HANDAL,0FHSUBAL,4XORAH,AHMOVBX,OFFSETSTRING2ADDBX,AXMOVDL,[BX]MOVAH,02H;显示输出INT21H…试回答:(1)如从键盘输人字符‘3’,程序段有什么结果?(2)如从键盘输人字符‘7’,程序段有什么结果?答:1)显示‘C’2)显示‘G’7.7已知AX=1234H,BX=5678H,SP=2268H当下面的程序段执行完下列程序后,AX=BX=SP=XCHGAX,BXPUSHAXPUSHBXPOPAXPOPBX7.8编一程序程序段,功能是把数0~9(BCD码)转换为相应的ASCII码,存在ASCI数据区中。BCDMDB09H,05H,06H,02H,08H,0,03HF,01H,07H,04HCUNT=$—BCDMASCIDBCUNTDUP(?)答:DATASEGMENTBCDMDB09H,05H,06H,02H,08H,0,03HF,01H,07H,04HCUNT=$-BCDMASCIDBCUNTDUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARMOVAX,DATAMOVDS,AXLEASI,BCDMLEADI,ASCIMOVCX,CUNTLP:MOVAL,[SI]ORAL,30HMOV[DI],ALINCSIINCDILOOPLPMOVAX,4C00HINT21HMAINENDPCODEENDSENDMAIN7.9在STR单元开始定义了一长度为LEN字节的字符串,统计出其中大写字母的个数并存放到LARGE字节单元中。请编一完整的源程序。数据段如下:DATASEGMENTSTRDB‘……’LENEQU$-STRLARGEDB?DATAENDS答:CDEGMENTASSUMECS:CD,DS:DATAMAINPROCFARMOVAX,DATAMOVDS,AXLEASI,STRMOVCX,LENMOVBL,0NT:CMPBYTEPTR[SI],‘A’JBNOLARGCMPBYTEPTR[SI],‘Z’JANOLARGINCBLNOLARG:INCSILOOPNTMOVLGE,BLMOVAH,4CHINT21HMAINENDPCDENDSENDMAIN7.10DATASEGMENTVALDB23,-2,39,63,-104,-85,16,71,08H,90DATAENDS…LEASI,VALMOVCX,9MOVAL,[SI]LOP1:INCSICMPAL,[SI]JLLOP2MOVAL,[SI]LOP2:LOOPLOP1HLT上述程序段运行后,AL=,程序功能是。第8章输入与输出接口8.4哪2个8255引脚完成内部I/O端口地址选择?答:地址信号A1、A0用于I/O端口地址选择。通过A1、A0所组合的地址来区分8255A内部A、B、C三个数据端口和一个控制端口的地址。8.7写出在选通输出操作期间将8255的PC5引脚置为逻辑1的程序(设8255的控制口的地址为083H)。答:设8255的控制口的地址为083H,则将8255的PC5引脚置为逻辑1的程序片断如下:MOVAL,BFHMOVDX,083HOUTDX,ALMOVAL,0FHOUTDX,AL8.12什么是波特率?答:波特率即传输率,就是在通信过程中每秒传输串型数据的位数。8.14如下图为LED接口电路,74LS373与LED之间是同相放大驱动电路。请完成:①如(b)图所示,LED的各笔划与D0-D7数据线连接,在表格中写出显示码;②若用地址A0-A7译码,使端口地址为78H,请把图中的74LS138译码器接入;③写一程序,程序运行时LED按如下方式不断循环显示1→2→3:(注:每字显示时间500ms(毫秒)。设有现成的延时100ms的子程序D100MS可供调用,调用D100MS不会影响任何寄存器。)LED显示(二进制)显示码LED显示(二进制)显示码183E第9章中断、计时/定时、DMA控制器9.8简述ICW和OCW的重要,怎样对8259A进行初始化?答:8259A是通过编程初始化命令字和操作命令字来选择定义各种工作方式的。初始化命令字ICW在8259A工作之前定义,它规定了8259A的基本操作。操作命令字OCW在正常操作过程中定义,它控制8259A的操作。系统上电以后,8259A必须写入ICW1、ICW2和ICW4,如果ICW1将8259A编程为级联方式,那么还必须编程ICW3。其中ICW1定义了8259A的基本操作;ICW2用来编程8259A中断请求的类型号;当系统工作于级联方式时,ICW3表示从片8259A连接到主片8259A的的哪一个中断请求线上;在基于8086~Pentium系列微处理器的系统当中,需要编程8259A的ICW4。系统上电以后,8259A必须写入ICW1、ICW2和ICW4,如果ICW1将8259A编程为级联方式,那么还必须编程ICW3。其中ICW1定义了8259A的基本操作;ICW2用来编程8259A中断请求的类型号;当系统工作于级联方式时,ICW3表示从片8259A连接到主片8259A的的哪一个中断请求线上;在基于8086~Pentium系列微处理器的系统当中,需要编程8259A的ICW4。9.9什么是普通EOI,什么是特殊EOI,它们的作用是什么?答:普通EOI是靠CPU在中断服务程序中向8259A发送的EOI命令,用来清除当前处于服务中优先级最高的ISR位的。普通结束中断方式用于全嵌套方式。特殊EOI是通过CPU发送特殊的EOI命令,命令指出了要清除的是正在服务的哪一个ISR位。特殊结束主要用于非全嵌套方式。9.158237有哪几种数据传送方式?各种方式的特点是什么?答:单字节传送、块传送、随机请求传送三种方式。单字节传送方式每次传送完一个字节,并释放总线至少一个总线周期。然后,继续测试外部设备的DMA请求,如果外设发出的DREQ有效,8237A循环上述过程,控制下一个字节的传送,直至传送字节计数器减为零。块传送是DMA的一种典型传送方式,在8237A控制器获得总线权以后,控制数据一个字节、一个字节地传送,直至数据块传送完毕。随机请求传送综合了块传送和单字节传送的特点。每传送完一个字节,8237A就测试DREQ的状态,如果DREQ为有效状态,则继续进行DMA传送,直至字节计数器为0。如果DREO为无效状态,8237A便释放总线,并继续测试DREQ的状态,只有在DREQ回到有效状态后,8237A才继续控制数据传送。9.18如果8253某计数器的计数初值为400H,时钟频率为2MHz,求定时时间(微秒)。答:定时时间T=400H÷2MHz=1024÷2MHz=512μs9.20用8253作为某数据采集系统的定时器,每隔10ms用中断方式采集一次数据,已知输入时钟频率为10kHz,8259端口地址为20—21H,中断类型号为13H,8253端口地址为40~43H,请为8259和8253编制初始化程序。答:8253选通道1以方式2定时,时间初值N=10KHz×10ms=100。8259由于中断类型号为13H,所以只能通过IR3,初始人为完全嵌套、边沿触发、非缓冲、非自动结束:;8253初始化:MOVAL,01110100BOUT46H,ALMOVAX,100OUT42HALMOVAL,AHOUT42H,AL;8259初始化:MOVAL,00010011B定;ICW1OUT20H,ALMOVAL,13H;ICW2OUT22H,ALMOVAL,01H;ICW4OUT22H,ALINAL,22H;读原屏蔽字ANDAL,11111011B;允许IR3中断OUT22H,AL9.21已知串行接口8251A数据口地址为40H,控制口地址为41H。请编写程序,通过8251A采用查询方式(检查TxRDY是否为1),把STR缓冲区中的字符串发送出去(数据段定义如下)。将8251A定义为异步传送方式,波特率因子为16,采用奇校验,1位停止位,8位数据位。