1、第一章:一、填空题1 1110 0EH 10011100 011001002 43. 255 -514. 输入设备5. 846. 630 * 8 * 10247. 位 字节 字 bit btype word8. 1111 1111 00100100 110110119. 110 89 -115 -50二、单选:DBCAB BBCB第二章:一、填空1 PC PC 2 反向器 晶振 两只电容 短3 加电 手动 0000H 07H 第 0 00H 07H4 6 2 1 125 DPTR DPH DPL 6 64KB单选题DCCAC AD 第三章:一、填空题:1 10312 34H 1 1 13 略4
2、 1100H5 26 30H 71H0A5H0A5H75H0A7H0AAH 0 1IFH 1 10AAH 0 120H 1 00D5H 1 149H 0 0二、单选题CCBDCA三、其它类型题错 错 对错 错 错 对 错 错 错 错 对对 对 对错 对 对错 对 错 错 对(三)其它类型题3编写程序将 RAM20H23H 单元的高 4 位写 1,低 4 位写 0。分析:就是把这四个单元写入 F0H。用一个 DJNZ 的循环。ORG 0000HMOV R0,#1FH ;R0 指向 20H 单元MOV R5,#04H; 四个数LOOP: INC R0MOV R0,#0F0H ; 写入DJNZ R5
3、,LOOP ; 循环 4 次END4把 m 和 m+1 单元存有两个 BCD 数,将它们合并到 m 单元中,编写程序完成。(设 m=30H, 高位在 30H,低数在 31H)ORG 0000HMOV A,30HANL A,#0FH ;把它的高四位清零SWAP AMOV 30H ,A ;高低四位调一下,放回原处MOV A,31HANL A,#0FHORL A,30H ;合并起来MOV 30H,AEND5.将内部 RAM 中从 data 单元开始的 10 个无符号数相加,其和送 sum 单元多,假定相加结果小于 255。编写程序完成。(设 data=30H, sun =50H)ORG 0000HM
4、OV R0,#2FH ; 指向前一个单元MOV R5,#0AH ;循环 10 次CLR A ;先加到 A 中LOOP: INC R0ADD A,R0DJNZ R5,LOOPMOV 50H,AEND6假定 8 位二进制带符号数丰于 R0 中,要求编写一个求补程序,所得补码入入R1 中。ORG 0000HMOV A,R0CPL A ;按位取反ADD A,#01H ;1MOV R1,AEND第四章:一、填空题1. 25H 40H 03H22.914ms3.略4 (A) =(30H) (A) (30H) (A) (30H) (A) (30H)5. 32.87ms编程题1把长度为 10H 的字符串从内部
5、 RAM 的输入缓冲区 inbuf 向位物外部 RAM 的输出缓冲区 outbuf 传送,一直进行到遇见回车或整个字符串传送完毕。试编程实现。ORG 0030HMOV R0,#inbufMOV R1,#outbuf MOV R4,#10HLOOP:MOV A,R0 ; 从内部 RAM 取数CJNE A,#0DH,LL ;是否为回车符 CRSJMP STOP ;是转停止传送LL: MOVX R1,A ;不是则传送到外部 RAM INC R0INC R1 DJNZ R4,LL;沒传送完则循环STOP: SJMP $2、内部 RAM 从 list 单元开始存放一正数表,表中之数作无序排列,并以“-1
6、”作结束标志。编程实现在表中找出最小数。(3AH 存放在运行程序时的最小的数) ORG 0030HMOV R0,#listMOV A,R0 ;取第一个正数LOOP: INC R0 ;指向下一个正数MOV 3AH,R0CJNE A,3AH,CHK ;前一个数与后一个数比较CHK: JC LOOP1 ;前一个数小,则转MOV A,R0 ;前一个数大,取后一个数LOOP1: XCH A,3AHCJNE A,#0FFH,LOOPXCH A,3AH ;取最小数MOV 3BH,ASJMP $3.内部 RAM 的 X,Y 单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入 Z 单元中。
7、若 X 为正奇数,Z XY;若 X 为正偶数,Z XY;若 X 为负奇数,Z XY;若 X 为负偶数,Z XY。分析:负数:第 7 位为 1,正数:第 7 位为 0奇数:第 0 位为 1,偶数:第 0 位为 0 ORG 0000HMOV A,20HCLR CRL AJC FS ;移到负数处处理RR ARR A ;第 0 位移到 C 再判定一下是不是 1JC ZJS ;到正奇数处MOV A,20HORL A,21HMOV 22H,ASJMP OKZJS: MOV A,20HADD A,21HMOV 22H,ASJMP OKFS: MOV A,20HCLR CRR AJC FJS ;第 0 位是
8、1,移到正 奇数处理MOV A,20HXRL A,21HMOV 22H,ASJMP OKFJS: MOV A,20HANL A,21HMOV 22H,AOK: END4、把一个 8 位二进制数的各位用 ASCII 码表示之(亦即为“0”的位用 30H 表示,为“1”的位用 31H 表示) 。该数存放在内部 RAM 中 byte 单元中。变换后得到的 8 个ASCII 码存放在外部 RAM 以 buf 始的存储单元中去。ORG 0030HMOV R0,#byteMOV DPTR,#bufMOV R5,#08HMOV A,R0LOOP: RLC AMOV R7,AJC LOOP1 MOV A,#3
9、0HSJMP LOOP2LOOP1: MOV A,#31HLOOP2: MOVX DPTR,AMOV A,R7INC DPTRDJNZ R5,LOOP5.编程实现运算式 c = a2+b2 假定 a、 b、 c 3 个数分别存放在内部 RAM 的DA、DB、DC 单元中,别有平方运算子程序调用。(内部 RAM 的 DA、DB、DC 单元设为 20H 21H 22H) ORG 0000HMOV A,20HPUSH ACCAJMP SQRPOP ACCMOV 22H,AMOV A,21HPUSH ACCAJMP SQRPOP ACCADD A,22HMOV 22H,AEND6、比较两个 ASCII
10、 码字符串是否相等。字符串的长度在内部 RAM 41H 单元,第一个字符串的首地址为 42H,第二个字符串的首地址为 52H。如果两个字符串相等,则置内部 RAM 40H 单元为 00H;否则置 40H 单元为 FF。ORG 0030HMOV R0,#42HMOV R1,#52HMOV R7,41H ;字符串长度LOOP: MOV A,R0MOV 30H,R1 CJNE A,30H,LKINC R0INC R1DJNZ R7,LOOPMOV 40H ,#00HSJMP DDLK: MOV 40H,#0FFHDD: SJMP DD7.外部 RAM 首址为 table 的数据表中,有 10 个字节的数据。编程将每个字节的最高位无条件地置“1” 。