JA JINGWEI3 JMP NEXT JINGWEI3:
MOV OUT3[9],'0' MOV OUT3[8],'1' NEXT:
LOOP SHURU LEA DX,OUT1 MOV AH,09H INT 21H
MOV AH,4CH INT 21H CODES ENDS END START
20. 键盘输入下列两组十进制数,求其和,并将结果显示在屏幕上 35789418 46531425 DATA SEGMENT BUF1 DB 0FFH DB ? DB 0FFH DUP(?) BUF2 DB 0FFH DB ? DB 0FFH DUP(?) TISHI1 DB 'PLEASE INPUT FIRST NUMBER:',0DH,0AH,'$' TISHI2 DB 0DH,0AH,'PLEASE INPUT SECOND NUMBER:',0DH,0AH,'$' STROUT DB 0DH,0AH,9 DUP('0'),'$' DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,TISHI1 MOV AH,09H INT 21H CALL INPUT1 LEA DX,TISHI2 MOV AH,09H INT 21H CALL INPUT2 LEA SI,BUF1[2]
LEA DI,BUF2[2] MOV CX,8 AGAIN: SUB BYTE PTR[SI],30H SUB BYTE PTR[DI],30H INC SI INC DI LOOP AGAIN LEA SI,BUF1[9] LEA DI,BUF2[9] LEA BX,STROUT[10] MOV CX,8 CLC QIUHE: MOV AL,[SI] ADC AL,[DI] CLC CMP AL,9 JA CARRY ADD BYTE PTR[BX],AL JMP NEXT CARRY: SUB AL,10 ADD BYTE PTR[BX],AL STC NEXT: DEC SI DEC DI DEC BX LOOP QIUHE ADC BYTE PTR[BX],0 LEA DX,STROUT MOV AH,09H INT 21H MOV AH,4CH INT 21H INPUT1: LEA DX,BUF1 MOV AH,0AH INT 21H RET INPUT2: LEA DX,BUF2 MOV AH,0AH
INT 21H RET CODE ENDS END START
21.键盘输入一串二进制数1ah ,7ch,0bah,3ah,45h,63h求其和,并将结果显示在屏幕上。 DATAS SEGMENT SUM DW 0 DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码 STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS MOV DS,AX XIAYIGE:
MOV BX,0 XIAYIWEI:
MOV AH,01H INT 21H CMP AL,'H' JZ NEXT CMP AL,0DH JZ SHUCHU CMP AL,'9' JA ZIMU SUB AL,30H JMP LEIJIA ZIMU:
SUB AL,37H LEIJIA:
MOV CL,16 XOR AH,AH XCHG AX,BX MUL CL ADD AX,BX XCHG AX,BX JMP XIAYIWEI NEXT:
MOV DL,0AH MOV AH,02H INT 21H
MOV DL,0DH MOV AH,02H INT 21H CMP BX,80H JAE FUSHU JMP QIUHE FUSHU: NEG BL LEA SI,SUM XOR BH,BH SUB [SI],BX JMP XIAYIGE QIUHE:
LEA SI,SUM XOR BH,BH ADD BX,[SI] MOV [SI],BX JMP XIAYIGE SHUCHU:
LEA SI,SUM MOV BX,[SI] MOV CH,4 CONTINUE: MOV CL,4 ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JAE ZIMU1 JMP SHUCHU1 ZIMU1:
ADD AL,7 SHUCHU1:
MOV DL,AL MOV AH,02H INT 21H DEC CH CMP CH,0 JNZ CONTINUE MOV AH,4CH
INT 21H CODES ENDS END START
22.从键盘输入一串可显示字符(以回车符结束),
并按字母、数字、空格分类计数,然后显示出这三类统计的结果。 DATAS SEGMENT BUF DB 100 DB ?
DB 100 DUP(?)
KONGGE DB 'KONGGE=00',0AH,0DH SHUZI DB 'SHUZI=00',0AH,0DH ZIMU DB 'ZIMU=00$' DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX LEA DX,BUF MOV AH,0AH INT 21H
MOV DL,0AH MOV AH,02H INT 21H
MOV DL,0DH MOV AH,02H INT 21H
LEA SI,BUF+2 MOV CL,BUF+1 AGAIN:
MOV AL,[SI] CMP AL,' ' JZ KONGGE1 CMP AL,'0' JB NEXT CMP AL,'9' JBE SHUZI1 CMP AL,'A' JB NEXT CMP AL,'Z' JBE ZIMU1 CMP AL,'a'