2

也许这很愚蠢,但我对汇编程序很陌生,所以请多多包涵。

有没有办法在汇编程序中实现嵌套循环?一个例子将不胜感激

我从一个示例中创建了这个简单的代码,它输出字母: WVUTSR 我对其进行了一些修改,以便像这样输出它:

W
VW
UVW
TUVW
STUVW
RSTUVW

但相反,我得到了这个:

WW
VV
UU
TT
SS
RR

这是代码:

.model small
.stack 100h
.data

M DB 'W'

.CODE

MAIN PROC FAR
MOV AX, @DATA
MOV DS, AX
MOV AX, 003H
INT 10H

; for (CX = 6; CX != 0; CX--) { // PSEUDO CODE
    ; for (BL = 0; BL != 7-CX; BL++) {
        ; putchar(M+BL);
    ; }
    ; M--;
    ; putchar(10);
    ; putchar(13);
; }

MOV CX, 6
OUTER:
INNER:
MOV AL, 7
SUB AL, CL
CMP BL, AL
JE INNEREQUAL
MOV AH, 02
MOV DL, M
INT 21H
MOV DL, AL
INT 21H
INC BL
JNE INNER

INNEREQUAL:
DEC M

MOV AH, 2
MOV DL, 10
INT 21H
MOV DL, 13
INT 21H
LOOP OUTER

MOV AH, 4CH
INT 21H

MAIN ENDP
END MAIN

如果有帮助,我正在使用 tasm。我现在也要去拔头发了。

4

0 回答 0