;汇编语言输出星号
;用键盘输入一个数字,按回车之后,显示相应行数的星号,第一行一个,第二行两个,第三行三个。
;以此类推!要用汇编语言编写。
;题目链接:http://zhidao.baidu.com/question/2138700462467944348.html
;做而论道早已回答了这个问题,但是百度知道抽风了,不给大家显示。
;申诉后,也没有反应。;就写在这里吧。
;===================================================================
ASSUME CS:CC, DS:QWER
;-------------------------------------
QWER SEGMENT PARA PUBLIC 'DATA'
TIP1 DB 'Please input a number(1~9): $'
TIP9 DB 13, 10, 7, 'Press any key to exit...'
CRLF DB 13, 10, 36
QWER ENDS
;-------------------------------------
CC SEGMENT PARA PUBLIC 'CODE'
START:
MOV AX, QWER
MOV DS, AX
LEA DX, TIP1
MOV AH, 9
INT 21H
IN_X:
MOV AH, 1
INT 21H
CMP AL, '1'
JB IN_X
CMP AL, '9'
JA IN_X
AND AL, 0FH
MOV CL, AL
MOV CH, 0
CALL CR_LF
CALL CR_LF
MOV DL, '*'
MOV AH, 02H
MOV BL, 0
X1:
INC BL
MOV BH, 0
X2:
INT 21H
INC BH
CMP BH, BL
JNE X2
CALL CR_LF ;打印完了一行, 下面准备下一行数据
LOOP X1
EXIT:
LEA DX, TIP9
MOV AH, 9
INT 21H
MOV AH, 1
INT 21H
MOV AH, 4CH ;结束程序
INT 21H
;-------------------------------------
CR_LF PROC NEAR
PUSH AX
PUSH DX
LEA DX, CRLF
MOV AH, 9
INT 21H
POP DX
POP AX
RET
CR_LF ENDP
;-------------------------------------
CC ENDS
END START
;===================================================================
程序工作时的画面如下:
C:\MASM>WW
lease input a number(1~9): 8
*
**
***
****
*****
******
*******
********
Press any key to exit...
C:\MASM>
输入数据的正确性,需要操作者自己掌握,程序并没有严格判定。