0
我們應該將上半部分與下半部分交換,而我的代碼是這樣做的,但問題是最後一行應該是「C:> FILE_NAME」。但是那條線上的C是倒數第二。它也缺少一行。我一直在嘗試與CX中的號碼混戰,但我沒有得到任何地方。這裏是代碼:使用x86程序集交換vga文本屏幕的一半
;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,因爲我正在想辦法解決一條線被複制丟失的事實,但我想這很正常。現在剩下要做的就是用字符串操作做到這一點:) –