小编Lev*_*yan的帖子

在Turbo Debugger中单步执行时,LOOP只执行一次

代码必须输出'ccb',但只输出'c',只输出LOOP一次,我已在TD中校准,但为什么LOOP只做一次?

我认为我必须减少STRING_LENGTH,所以我心烦意乱

DEC STRING_LENGTH
Run Code Online (Sandbox Code Playgroud)

但是它不起作用,所以我很喜欢这样

MOV SP,STRING_LENGTH
DEC SP
MOV STRING_LENGTH,SP
Run Code Online (Sandbox Code Playgroud)

我知道你现在正在思考什么,这是不正确的,你是对的)))

我可以使用C++,但我只想在大会上做,

DOSSEG
.MODEL SMALL
.STACK 200H
.DATA
STRING DB 'cScbd$'
STRING_LENGTH EQU $-STRING
STRING1 DB STRING_LENGTH DUP (?) , '$'
.CODE
MOV AX,@DATA
MOV DS,AX
XOR SI,SI
XOR DI,DI

MOV CX,STRING_LENGTH

S:

MOV BL,STRING[DI]
AND STRING[DI],01111100B
CMP STRING[DI],01100000B
JNE L1
MOV AL,BL
MOV STRING1[SI],AL
ADD SI,2
L1:

ADD DI,2

LOOP S

MOV DL,STRING1
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
END
Run Code Online (Sandbox Code Playgroud)

debugging assembly x86-16

1
推荐指数
1
解决办法
85
查看次数

标签 统计

assembly ×1

debugging ×1

x86-16 ×1