Мы должны поменять верхнюю половину нижней половиной, и мой код делает это, но проблема в последней строке - это «C:> FILE_NAME». Но C в этой строке находится на втором и последнем. Также отсутствует одна строка. Я пытался играть с цифрами в CX, но я никуда не денусь. Вот код:Swap vga text screen половинки с использованием сборки x86
;Swap two halves of the screen crosswise
JMP START ;This will start the program
START:
MOV AX, 0B800H
MOV ES, AX ;Assign Video Display Area to ES
MOV DS, AX ;Assign Video Display Area to DS
MOV SI, 0
MOV DI, (80*2)*(12) ;Lower half of screen
MOV CX, 13 ;Loop for half of screen
OUTERLOOP:
PUSH CX
MOV CX, 80 ;COLUMNS. I GET IT NOW!
INNERLOOP:
MOV AL, [DS:SI]
MOV B[ES:DI], AL
ADD DI, 2
MOV BL, [ES:DI]
MOV B[ES:SI], BL
ADD SI, 2
LOOP INNERLOOP
POP CX
LOOP OUTERLOOP
INT 20H
спасибо! я делал это 13, потому что я выяснял способ разрешить тот факт, что одна строка отсутствует при копировании, но я предполагаю, что это нормально. теперь все, что осталось сделать, это сделать со строковыми операциями :) –