これはばかげているかもしれませんが、私はアセンブラーにかなり慣れていないので、ご容赦ください。
アセンブラでネストされたループを実装する方法はありますか? 例をいただければ幸いです
例からこの単純なコードを作成しました。それは文字を出力します: 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を使用しています。私もこれから髪を引っ張る予定です。