《2022年编程题 .pdf》由会员分享,可在线阅读,更多相关《2022年编程题 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1、设有字节数组 X,X数组中有 X1,X10,十个无符号数。要求计算:Z1=2*X1 Z2=2*X2 Z3=X3/2Z4=2*X4 Z5=X5/2 Z6=2*X6Z7=2*X7 Z8=X8/2 Z9=X9/2Z10=2*X10结果存入 Z数组。(不考虑溢出等情况)要实现上述要求,应该使用哪个编程技术?如何设置标志?(3分)正确定义数据段(2分)试编制一完整的汇编源程序实现上述要求。(10分)解:要实现上述要求,应该使用逻辑尺。用0表示乘法,用 1表示除法。则逻辑尺设置为 0110010100B,即0194H。数据段定义为:DATASEG SEGMENTX DB X1,X2,X3,X4,X5,
2、X6,X7,X8,X9,X10Z DB Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10LR DB 0194H DATASEG ENDS源程序如下:CODESEG SEGMENTASSUME CS:CODESEG,DS:DATASEGSTART:PUSH DSSUB AX,AXPUSH AXMOV AX,DATASEGMOV DS,AXMOV BX,0MOV CX,10MOV DX,LRNEXT:MOV AL,XBXSHR DX,1JC DIVTRACTSHL AL,1名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -JMP SHORT RESULTDIVTR
3、ACT:SHR AL,1RESULT:MOV ZBX,ALINC BXLOOP NEXTRET CODESEG ENDS END START2、有一串 L个字符的字符串存储于首地址为STR的存储区中。要求在字符串中查找“空格”(空格的 ASCII 码为20H)字符,找到则继续执行后续指令;如未找到则转到NOT-FOUND 处去执行,试编制实现这一要求的指令序列。MOV CX,L MOV SI,OFFSET STR MOV AL,20HNEXT:CMP AL,SI INC SI LOOPNE NEXT JNE NOT-FOUND .NOT-FOUND:3、计算 SUM=1+2+3+4+400MO
4、V AX,1MOV BX,2MOV CX,399NEXT:ADD AX,BXINC BXLOOP NEXT4、试编写一个程序段,要求能从键盘接收一个个位数N,然后响铃 N次(响铃的 ASCII 为07)。codeseg segment名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -assume cs:codesegmain proc farstart:mov ah,1int 21hsub al,30hcmp al,0je exitmov cl,almov ch,0next:mov ah,2mov dl,7int 21hloop nextexit:mov ah,4chin
5、t 21hmain endpcode seg endsend start5、编写一完整的汇编程序,完成的功能如下:向内存0020H:0H0020H:003FH中依次传送数据 063D(3FH)。codeseg segmentassume cs:codesgstart:mov ax,0020hmov ds,axmov bx,0mov dl,0mov cx,64next:mov bx,dlinc dlinc bxloop nextmov ax,4c00h名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -int 21hcodeseg endsend6编写一完整的汇编源程序,编写
6、将压缩BCD码转化为对应的两个ASCII 码的子程序。DATASEG SEGMENTBCD DB 12H,34H,56H,78H,90HASC DB 10 DUP(?)DATASEG ENDSCODESEG SEGMENTASSUME CS:CODESEG,DS:DATASEGSTART:MOV AX,DATASEGMOV DS,AXMOV CL,4MOV BX,0MOV SI,0MOV DI,5AGAIN:MOV CH,2MOV AL,BCDBXNEXT:ROL AL,CLMOV AH,ALAND AH,0FHOR AH,30HMOV ASCSI,AHINC SIDEC CHJNE NEXT
7、INC BXDEC DIJNE AGAINMOV AX,4C00HINT 21H名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -CODESEG ENDSEND START7、试编制一段汇编指令序列,用串操作指令实现以DA_BY 为首址的20H个字节单元中存放相同字符Y(设DA_BY 存储区已有 ES指向)。LEA DI,DA_BY MOV CX,32 MOV AL,Y CLD REP STOSB8、试编制一完整的汇编源程序,统计DA1字单元中含 0的个数,如统计的个数为奇数,则将进位位置1,否则进位位清 0。DATASEG SEGMENTDA1 DW XXXXDATAS
8、EG ENDSCODESEG SEGMENTASSUME CS:CODESEG,DS:DATASEGSTART:MOV AX,DATASEG MOV DS,AX MOV CX,16XOR BL,BLMOV AX,DA1AGAIN:SHL AX,1 JC NEXT INC BLNEXT:LOOP AGAIN TEST BL,01H JNE L1 CLC JMP DONEL1:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -STCDONE:MOV AH,4CH INT 21HCODESEG ENDSEND START 9.编写程序段实现用二进制显示从键盘输入的一个字符的AS
9、CII码。CODESEG SEGMENTASSUME CS:CODESEGSTART:MOV AH,1INT 21HMOV CX,8MOV BL,ALNEXT:ROL BL,1MOV DL,BLAND DL,01HOR DL,30HMOV AH,2INT 21HLOOP NEXTMOV AX,4C00HINT 21HCODESEG ENDSEND START10、已知两个整数字节变量A和B,试编写完成下述操作的程序:1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -2)若两个数均为奇数,则两数分别加1,并存回原变
10、量。3)若两个数均为偶数,则两变量不变。DATASEG SEGMENT A DB X1 B DB X2DATASEG ENDSCODESEG SEGMENT ASSUME CS:CODESEG,DS:DATASEGSTART:MOV AX,DATASEG MOV DS,AX MOV AL,A MOV BL,B XOR AL,BL TEST AL,1 JZ CLASS TEST BL,1 JZ EXIT XCHG BL,A MOV B,BL JMP EXITCLASS:TEST BL,1 JZ EXIT INC A INC BEXIT:MOV AH,4CH INT 21HCODESEG ENDS
11、 END START11、试编写一段程序,要求比较数组ARRAY 中的三个 16位有符号数,根据比较结果置变量FLAG 标志:(1)如果三个数都不相等,则FLAG 为0;(2)如果三个数有两个相等,则FLAG 为1;(3)如果三个数全相等,则FLAG 为2。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -DATASEG SEGMENT ARRAY DW A1,A2,A3 FLAG DB?DATASEG ENDSCODESEG SEGMENT ASSUME CS:CODESEG,DS:DATASEGSTART:MOV AX,DATASEG MOV DS,AX MOV AX,ARRAY MOV BX,ARRAY+2 MOV DX,ARRAY+4 CMP AX,BX JNE NEXT1 INC FLAGNEXT1:CMP AX,DX JNE NEXT2 INC FLAG JMP NEXT3NEXT2:CMP BX,DX JNE NEXT3 INC FLAGNEXT3:MOV AH,4CH INT 21HCODESEG ENDS END START名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -
限制150内