admin管理员组

文章数量:1558102

问题描述

编制在屏幕上显示用*组成的三角形的程序

代码实现

STACK SEGMENT STACK;初始化堆栈段
    DB 1024 DUP(0)
STACK ENDS;堆栈段结束

DATA SEGMENT;定义数据段
    I  DB  8;行数
    J  DB  1;首行字符数
DATA ENDS;数据段结束

CODE SEGMENT;定义代码段
    ASSUME CS:CODE, DS:DATA;指明段寄存器与段的关系
BEGIN:
    MOV AX, DATA
    MOV DS, AX;装入DS

    MOV CL,I
    MOV CH,00H;装入CX作为行数的循环

    LOPI:
    MOV BL,00H;外层循环,为行数循环,置BL寄存器为0,作为输出*的计数器
    LOPJ:
    MOV DL,'*';输出一个*
    MOV AH,02H
    INT 21H

    INC BL;输出一次*,计数器加一
    CMP BL,J;与当前的J(该行*的个数)比较
    JNZ LOPJ;若不等于J则跳回LOPJ继续输出*

    INC J;跳出LOPJ后J加一,为下一行的*个数

    MOV DL,0AH;输出换行符
    MOV AH,02H
    INT 21H

    LOOP LOPI;(CX)=(CX)-1,若(CX)不等于0则跳回LOPI

    MOV AH, 4CH
    INT 21H;程序结束
CODE  ENDS
END   BEGIN

本文标签: 角形注释程序详细屏幕上