logo资料库

32位无符号乘法/递归调用程序.docx

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
DATA SEGMENT db 'input beichengshu H:','$' db 0DH,0AH,'$' db 'input beichengshu L:','$' db 0DH,0AH,'$' db 'input chengshu H:','$' db 0DH,0AH,'$' db 'input chengshu L:','$' db 'the result is :','$' db 0DH,0AH,'$' dw 16 dup(?) dw 16 dup(?) dw 16 dup(?) dw 16 dup(?) s1 k1 s2 k2 s3 k3 s4 s5 k4 b2 b1 c2 c1 result dw 30 dup(?) zz db 10 dup(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET s1 INT 21H MOV DX,OFFSET zz MOV BX,DX MOV [BX],BYTE PTR 9 MOV AH,0AH INT 21H MOV AH,[BX+2] MOV AL,[BX+3] MOV CL,4 SHL AL,CL SHR AX,CL MOV DH,AL MOV AH,[BX+4] MOV AL,[BX+5] MOV CL,4 SHL AL,CL SHR AX,CL MOV DL,AL MOV b2,DX
MOV AH,09H MOV DX,OFFSET k1 INT 21H MOV AH,09H MOV DX,OFFSET s2 INT 21H MOV DX,OFFSET zz MOV BX,DX MOV [BX],BYTE PTR 9 MOV AH,0AH INT 21H MOV AH,[BX+2] MOV AL,[BX+3] MOV CL,4 SHL AL,CL SHR AX,CL MOV DH,AL MOV AH,[BX+4] MOV AL,[BX+5] MOV CL,4 SHL AL,CL SHR AX,CL MOV DL,AL MOV b1,DX MOV AH,09H MOV DX,OFFSET k2 INT 21H MOV AH,09H MOV DX,OFFSET s3 INT 21H MOV DX,OFFSET zz MOV BX,DX MOV [BX],BYTE PTR 9 MOV AH,0AH INT 21H MOV AH,[BX+2] MOV AL,[BX+3] MOV CL,4 SHL AL,CL SHR AX,CL
MOV DH,AL MOV AH,[BX+4] MOV AL,[BX+5] MOV CL,4 SHL AL,CL SHR AX,CL MOV DL,AL MOV c2,DX MOV AH,09H MOV DX,OFFSET k3 INT 21H MOV AH,09H MOV DX,OFFSET s4 INT 21H MOV DX,OFFSET zz MOV BX,DX MOV [BX],BYTE PTR 9 MOV AH,0AH INT 21H MOV AH,[BX+2] MOV AL,[BX+3] MOV CL,4 SHL AL,CL SHR AX,CL MOV DH,AL MOV AH,[BX+4] MOV AL,[BX+5] MOV CL,4 SHL AL,CL SHR AX,CL MOV DL,AL MOV c1,DX MOV AH,09H MOV DX,OFFSET k4 INT 21H MOV AX,b1 MOV DX,c1 MUL DX MOV [result],AX MOV [result+2],DX
MOV AX,b2 MOV DX,c1 MUL DX ADD [result+2],AX ADC [result+4],DX MOV AX,b1 MOV DX,c2 MUL DX ADD [result+2],AX ADC [result+4],DX ADC [result+6],0 MOV AX,b2 MOV DX,c2 MUL DX ADD [result+4],AX ADC [result+6],DX MOV AL,BYTE PTR result+7 call JD MOV AL,BYTE PTR result+6 call JD MOV AL,BYTE PTR result+5 call JD MOV AL,BYTE PTR result+4 call JD MOV AL,BYTE PTR result+3 call JD MOV AL,BYTE PTR result+2 call JD MOV AL,BYTE PTR result+1 call JD MOV AL,BYTE PTR result call JD MOV AH,4CH INT 21H JD PROC PUSH CX PUSH DX
PUSH AX MOV CL,4 SHR AL,CL OR AL,30H CMP AL,3AH JB br1 ADD AL,7 br1: MOV DL,AL MOV AH,02H INT 21H POP AX AND AL,0FH OR AL,30H CMP AL,3AH JB br2 ADD AL,7 br2: MOV DL,AL MOV AH,02H INT 21H POP DX POP CX RET JD ENDP CODE ENDS END START 递归调用 DATA SEGMENT STR1 DB 0AH,0DH,'PLEASE INPUT THE NUMBER(0-9):','$' STR2 DB 0AH,0DH,'result','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET STR1 MOV AH,09H
INT 21H MOV AH,01H INT 21H AND AL,0FH MOV AH,0 MOV CX,AX MOV DX,OFFSET STR2 MOV AH,09H INT 21H MOV AX,1 MOV BX,0 MOV DX,0 LOOP1: INC BX MUL BX LOOP LOOP1 PUSH AX MOV AL,AH CALL DISPRG POP AX CALL DISPRG MOV AH,04H INT 21H DISPRG PROC PUSH CX PUSH DX PUSH AX AND AL,0F0H MOV CL,4 SHR AL,CL ADD AL,30H CMP AL,3AH JB ADD AL,07 B1 B1: MOV DL,AL MOV AH,02H INT 21H POP AX AND AL,0FH ADD AL,30H CMP AL,3AH JB B2
ADD AL,07 B2: MOV DL,AL MOV AH,02H INT 21H POP DX POP CX RET DISPRG ENDP CODE ENDS END START
分享到:
收藏