文档详情

8子程序.doc

发布:2018-03-17约4.61千字共6页下载文档
文本预览下载声明
8、子程序: N例1编写递归子程序计算N的阶乘。(N0,0!=1)。 DATA SEGMENT RESULT DW ? NUM DW 4 DATA ENDS STACK SEGMENT DW 20 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA,SS:STACK MAIN PROC FAR PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX LEA BX,NUM MOV AX,[BX] CALL FACT MAIN ENDP FACT PROC NEAR CMP AX,0 JZ DONE PUSH AX DEC AX CALL FACT POP AX MOV CX,RESULT MUL CX MOV RESULT,AX JMP EXIT DONE : MOV RESULT,1 EXIT: RET FACT ENDP CODE ENDS END Y;求5!。 S SEGMENT DB 256 DUP(?) S ENDS D SEGMENT T1 DB 05H T2 DW ? D ENDS C SEGMENT ASSUME CS:C,SS:S,DS:D M PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,D MOV DS,AX MOV AL,T1 MOV BL,AL L1:DEC BL MUL BL CMP BL,02H JA L1 MOV T2,AX CALL DISP RET M ENDP DISP PROC NEAR MOV BX,AX MOV CH,04H MOV CL,04H L3:ROL BX,CL MOV DL,BL AND DL,0FH ADD DL,30H CMP DL,3AH JB L2 ADD DL,07H L2:MOV AH,02H INT 21H DEC CH JNZ L3 RET DISP ENDP C ENDS END M Y例2编写每隔10秒钟响铃1次,同时在屏幕上显示信息”The bell is ring ! DATA SEGMENT BUFF DB THE DELL IS RINGING!,0DH,0AH,$ COUNT DW 1 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA MAIN PROC FAR PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX CONT: MOV DI,20000 DELAY: MOV SI,30000 DELAY1: DEC SI JNZ DELAY1 DEC DI JNZ DELAY LEA DX,BUFF MOV AH,9 INT 21H JMP CONT RET MAIN ENDP CODE ENDS END Y例3设计编制16进制转换成10进制的程序 DATA SEGMENT T DB 2 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX REPEAT:CALL HEXIBIN CMP AL,13 JZ QUIT CMP AL,15H JZ QUIT CALL CRLF CALL BINIDEC
显示全部
相似文档