JG POSITIVE ADD NUM[15],1 NEG BL ADD JISUAN,BX POSITIVE: INC SI LOOP PANDUAN LEA SI,ZHUANHUAN SHUCHU: MOV AX,JISUAN MOV BL,10 DIV BL MOV [SI],AH XOR AH,AH MOV JISUAN,AX CMP AL,0 JE EXIT INC SI JMP SHUCHU EXIT: MOV [SI+1],AL LEA DI,COUNT[15] LEA SI,ZHUANHUAN[3] MOV CX,4 AGAIN: MOV BL,[SI] ADD BL,30H MOV [DI],BL INC DI DEC SI LOOP AGAIN LEA DX,NUM MOV AH,09H INT 21H MOV AX,4C00H INT 21H CODE ENDS END START
19.键盘输入两组数743216、527864,按BCD码求和,并将结果显示在屏幕上。 DATA SEGMENT BUF DB 0FFH DB ? DB 0FFH DUP(?)
STROUT DB 0DH,0AH,7 DUP('0'),'$' DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,BUF MOV AH,0AH INT 21H LEA SI,BUF[2] MOV CX,6 AGAIN: SUB BYTE PTR[SI],30H SUB BYTE PTR[SI+7],30H INC SI LOOP AGAIN LEA SI,BUF[7] LEA DI,BUF[14] LEA BX,STROUT[8] MOV CX,6 CLC AGAIN1: MOV AL,[SI] ADC AL,[DI] CLC CMP AL,10 JAE CARRY ADD [BX],AL JMP NEXT CARRY: SUB AL,10 ADD [BX],AL STC NEXT: DEC SI DEC DI DEC BX LOOP AGAIN1
ADC BYTE PTR[BX],0 LEA DX,STROUT MOV AH,09H INT 21H MOV AH,4CH
INT 21H CODE ENDS END START
提示版:
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,7 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,6 AGAIN: SUB BYTE PTR[SI],30H SUB BYTE PTR[DI],30H INC SI INC DI LOOP AGAIN LEA SI,BUF1[7] LEA DI,BUF2[7] LEA BX,STROUT[8] MOV CX,6 CLC AGAIN1:
MOV AL,[SI] ADC AL,[DI] CLC CMP AL,10 JAE CARRY ADD [BX],AL JMP NEXT CARRY: SUB AL,10 ADD [BX],AL STC NEXT: DEC SI DEC DI DEC BX LOOP AGAIN1
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
19_1键盘输入十个数,分别统计0到9,10到99,100以上的数的个数,并显示结果。
DATAS SEGMENT BUF DB 0FFH DB ?
DB 0FFH DUP(?)
OUT1 DB 0AH,0DH,'00-09= 0' OUT2 DB 0AH,0DH,'10-99= 0' OUT3 DB 0AH,0DH,'>100 = 0$'
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX MOV CX,10 SHURU: LEA DX,BUF MOV AH,0AH INT 21H
MOV DL,0AH MOV AH,02H INT 21H
MOV DL,0DH MOV AH,02H INT 21H
MOV AL,BYTE PTR BUF[1] CMP AL,1 JZ GEWEI CMP AL,2 JZ SHIWEI JMP OTHER GEWEI:
INC OUT1[9] CMP OUT1[9],'9' JA JINGWEI1 JMP NEXT JINGWEI1:
MOV OUT1[9],'0' MOV OUT1[8],'1' JMP NEXT SHIWEI: INC OUT2[9] CMP OUT2[9],'9' JA JINGWEI2 JMP NEXT JINGWEI2:
MOV OUT2[9],'0' MOV OUT2[8],'1' JMP NEXT OTHER:
INC OUT3[9] CMP OUT3[9],'9'