80x86 汇编语言:编程一题 Myth丶恋晨 2022-08-20 01:15 171阅读 0赞 ;已知 an = a(n - 1) + 3 \* a(n - 2),且 a1 = 0, a2 = 1; ;当 n >= 3时,编写一个求 an 的子程序。 ;下列程序已经调试通过。全部代码如下: ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DATA SEGMENT BUFFER1 DB 13, 10, 'Please input n (3~9): $' BUFFER2 DB 13, 10, 'an = $' CR\_LF DB 13, 10, '$' AN1 DW 0 AN2 DW 1 AN3 DW ? NNN DW ? DATA ENDS ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX, DATA MOV DS, AX ;-------------------------- MOV DX, OFFSET BUFFER1 MOV AH, 9 INT 21H MOV AH, 1 INT 21H ;AL: 33H~39H SUB AL, 32H ;AL: 01H~07H MOV AH, 0 MOV NNN, AX MOV DX, OFFSET BUFFER2 MOV AH, 9 INT 21H ;-------------------------- MOV CX, NNN SSS: MOV AX, AN1 MOV BX, 3 MUL BX ADD AX, AN2 ; MOV BX, AN2 MOV AN1, BX MOV AN2, AX LOOP SSS MOV AN3, AX CALL PRINTAX MOV DX, OFFSET CR\_LF MOV AH, 9 INT 21H MOV AX, 4C00H INT 21H ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PRINTAX PROC MOV BX, 10 XOR CX, CX @@: XOR DX, DX DIV BX MOV DH, 0EH PUSH DX INC CX CMP AX, 0 JNZ @B @@: POP AX ADD AL, 90H DAA ADC AL, 40H DAA INT 10H LOOP @B RET PRINTAX ENDP ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CODE ENDS END START ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 上述程序执行的效果如下: c:\\masm510>AN Please input n (3~9): 4 an = 4 c:\\masm510>AN Please input n (3~9): 7 an = 40 c:\\masm510>AN Please input n (3~9): 9 an = 217 c:\\masm510> 大家可以试试输入其它数字。 注意:因为题目的要求,写的很简单,所以本程序也就没有写错误检验部分。输入的时候,不要输入 3~9 以外的数字,否则结果难以预料。 原题网址:[http://zhidao.baidu.com/question/437858233.html][http_zhidao.baidu.com_question_437858233.html] [http_zhidao.baidu.com_question_437858233.html]: http://zhidao.baidu.com/question/437858233.html
还没有评论,来说两句吧...