资源描述:
《微机原理作业及答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理作业第三章汇编语言程序设计题3.1A在下列程序运行后,给相应的寄存器及存储单元填入运行的结果:MOVAL,10HMMOVCX,1000HBLMOVBX,2000H1000HMOV[CX],ALBHXCHGCX,BXMOVDH,[BX]CLMOVDL,01HXCHGCX,BXCLMOV[BX],DL2000HHLTDLAL=1OHBL=OOHBH=2OHCL=OOHCH=1OHDH=1OH(10O0H)=lOH(200OH)=0lH题3.1BDL要求同题3.1A程序如下;MOVAL,50HALMOVBP,1000H
2、MOVBX,2000HMOV[BP],ALMOVDH,20HMOV[BX],DHMOVDL,01HMOVDL,[BX]MOVCX,3000HHLTAL=5OHBL=OOHBH=20HCL=OOHCH=30HDL=20HDH=2OHBP=100OH(10OOH)=5OH(20OOH)=20H题3.2,如在自1000H单元开始有一个100个数的数椐块。要把它传送到自2000H开始的存储区中去,用以下三种方法,分别编制程序;1;不用数据块转送指令;2;用单个转送的数据块转送指令;3;用数据块成组转送指令;(1)LEASI,1O
3、OOHLEADI,200OHMOVCX,100L1:MOVAX,[SI]MOV[DI],AXLOOPLlHLT(2)LEASI,100OHLEADI,2000HMOVCX,100CLDL1:MOVSBLOOPL1HLT(3)LEASI,100OHLEADI,200OHMOVCX,100CLDREPMOVSBHLT题3.3A利用变址寄存器遍一个程序,把自1000H单元内开始的100个数转送到自1070H开始的存储区中去,LEASI,100OHLEADI,1070HMOVCX,100CLDREPMOVSBHLT题3.3B要求
4、用3.3A,源地址为2050H,目的地址为2000H,数据块长度为50,LEASI,205OHLEADI,200OHMOVCX,50CLDREPMOVSBHLT题3.4编一个程序,把自1000H单元开始的100个数转送至1050H开始的存储区中(注意数据区有重叠)。LEASI,100OHLEADI,1050HADDSI,63HADDDI,63HMOVCX,100STDREPMOVSBHLT题3.5A在自0500H单元开始,存有100个数。要求把它传送到1000H开始的存储区中,但在传送过程中要检查数的值,遇到第一个零就停
5、止传送。LEASI,050OHLEADI,10OOHMOVCX,100N1:MOVAL,[SI]CMPAL,0JZN2MOV[DI],ALINCSIINCDILOOPN1N2:HLT题3.5B条件同题3.5A,但在传送过程中检查数的值,零不传送,不是零则传送至目的区。题3.6把在题3.5A中指定的数据块中的正数,传送到自1000H开始的存储区。题3.7把在题3.5A中指定的数据块中的正数,传送到自1000H开始的存储区;而把其中的负数,传送到自1100H开始的存储区。且分别统计正数和负数的个数,分别存入1200H和120
6、1H单元中。HLT题3.8A自0500H单元开始,有10个无符号数,编一个程序求10个数的和(用8个位数运算指令),把和放到050A及050B单元中(和用两个字节表示),且高位在050B单元。题3.8B自0200H单元开始,有100个无符号数,编一个程序求这100个数的和(用8位数运算指令),把和放在0264H和0265H单元(和用两字节表示),且高位在0265H单元。题3.9题同3.8,只是在累加时用16位运算指令编程序。题3.10A若在0500H单元中有一个数x:1.利用加法指令把它乘2,且送回原存储单元(假定x*2
7、后仍为一个字节);2.x*4;3.x*10(假定x*10≤255)。(1)LEABX,050OHMOVAL,[BX]ADDAL,ALMOV[BX],AL(2)LEABX,0500HMOVAL,[BX]ADDAL,ALADDAL,ALMOV[BX],AL(3)LEABX,050OHMOVAL,[BX]ADDAL,ALMOVDL,ALADDAL,ALADDAL,ALADDAL,DLMOV[BX],AL题3.10B题意与要求同题3.10A,只是x*2后可能为两个字节。题3.11若在存储器中有两个数a和b(它们所在地址用符号表示
8、,下同),编一个程序实现a*10+b(a*10以及“和”用两字节表示)。题3.12若在存储中有数a,b,c,d(它们连续存放),编一个程序实现((a*10+b)*10+c)*10+d(和≤65535)题3.13A在0100H单元和010AH单元开始,存放两个各为10个字节的BCD数(地址最低处放的是最低字节),求它们