80x86 汇编语言编程:输出指定行数的星号

来源:互联网 发布:南京新大陆软件怎么样 编辑:程序博客网 时间:2024/05/22 03:41

;汇编语言输出星号


;用键盘输入一个数字,按回车之后,显示相应行数的星号,第一行一个,第二行两个,第三行三个。

;以此类推!要用汇编语言编写。


;题目链接: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>


输入数据的正确性,需要操作者自己掌握,程序并没有严格判定。



0 0