【发布时间】:2020-09-13 09:21:20
【问题描述】:
; Moving a string without using string instructions
ASSUME CS:CODE,DS:DATA,ES:EXTRA
DATA SEGMENT
SOURCE DB 11H,22H,33H,44H
DATA ENDS
EXTRA SEGMENT
DEST DB ?
EXTRA ENDS
CODE SEGMENT
START: MOV AX,DATA
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
MOV SI,OFFSET SOURCE
MOV DI,OFFSET DEST
MOV CX,0004H
CLD
TRANSFER:
MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
;DEC CX
LOOPNE TRANSFER
MOV AH,4CH
INT 21H
CODE ENDS
END START
我尝试了这个程序的以下变体:
- 使用 LOOP 而不是 LOOPNE
- 使用 JNZ 和 DEC CX 而不是循环指令
【问题讨论】:
-
loopne是错误的。使用loop或dec cx\jnz ...
标签: assembly x86-16 masm dosbox