内容发布更新时间 : 2025/6/16 7:36:40星期一 下面是文章的全部内容请认真阅读。
CMP DX, 0
JZ NEXT ;整除,本数据非素数,转NEXT INC BX ;形成下一个测试数据 JMP TST ;继续测试 OK: INC CX ;统计本行输出数据个数 CMP CX, 10 JLE OUTPUT ;本行数据未满10个,直接输出 XOR CX, CX ;本行数据已满10个,清计数器 CALL CRLF ;输出回车换行 OUTPUT:MOV DX, -1 MOV AX, SI
CALL WRITEDEC ;输出一个素数 NEXT: INC SI ;产生下一个被测试数据 CMP SI, 1000 JB ONE ;未完成,继续 CALL CRLF ;结束一行 MOV AX, 4C00H INT 21H CODE ENDS END START
60 编写程序,输入N,计算:S=1*2+2*3+??+(N-1)*N 答: INCLUDE YLIB.H
CODE SEGMENT
ASSUME CS: CODE
MESS1 DB 0DH, 0AH, ‘Input N please: $’ MESS2 DB 0DH, 0AH, ‘S= $’ START:
PUSH CS POP DS
LEA DX, MESS1
CALL READDEC ;输入N MOV CX, AX XOR BX, BX ;BX用作累加器
ONE: MOV AX, CX MOV SI, AX DEC SI MUL SI ;计算J*(J-1) ADD BX, AX ;累加 LOOP ONE LEA DX, MESS2 MOV AX, BX
CALL WRITEDEC ;输出结果 CALL CRLF
MOV AX, 4C00H INT 21H CODE ENDS END START
61 编写程序,输入N,输出如下矩阵(设N=5)
1 1 1 1 1 2 2 2 2 1 3 3 3 2 1 4 4 3 2 1 5 4 3 2 1 答:设I为行(1~5), J为列(1~5),则(I, J)位置上的数据为:I: 6-J 。
INCLUDE YLIB.H CODE SEGMENT
ASSUME CS: CODE START:
CALL CRLF MOV SI, 1 ;SI为行号
ROW: MOV CX, 5 ;CX为6-列号
COL: CMP SI, CX ;判断当前位置 JB UP DOWN: MOV AX, CX ;下半三角,取6-列号 JMP OUTPUT UP: MOV AX, SI ;上半三角,取行号 OUTPUT: MOV DX, -1
CALL WRITEDEC ;输出一个数据 LOOP COL
CALL CRLF ;结束本行 INC SI ;修改行号 CMP SI, 5 JBE ROW ;未满5行,继续 MOV AX, 4C00H INT 21H CODE ENDS END START
(6-J)? I>
62 编写几个简单的子程序。
(1)显示一个字符的子程序。入口参数:DL=字符的ASCII码