Hm tak to nějak shrneme a uzavřeme, protože se to tak nějak chýlí ke konci :)
tady máš image na USB flešku a je to MSDOS 7.x, to kdyby sis chtěl nabootovat počítač z flešky nebo nabootovat MSDOS
z VMWare
https://uloz.to/…r-usbkey-ima!ZJSzAwR2ZJSxAmEuAJV5ATAzAGWzAH9eFx9DIKL3ERSsHmDmMD==
tady máš návod jak se bootuje MSDOS ve VMWare z USB Flešky je to docela dobrý
a výhodou je, že pracuje v reálným MSDOSU, tu flešku samozřejmě musíš mít zasunutou v USB portu
https://www.youtube.com/watch?v=rZhL5ReedrA
tady máš WinIMAGE aby sis to mohl zapsat na flešku tu image
https://uloz.to/…ge-6-a-8-rar
tady máš adresář ruzných programů co se dává na c:\_DOSBOX a je to pracovní adresář DOSBOXU:
https://uloz.to/file/Plh9VSGvzPek/dosbox-rar
tady máš info o DOSBOXU:
https://www.dosbox.com/download.php?main=1
https://www.dosbox.com/wiki/Commands
Kromě DosBoxu mužeš používat i WindowsXP x32. je to mnohem luxusnější - viz screenshot dole
tady máš link na instalačku VMWare 15, 16, 17 a vše potřebné.
https://uloz.to/file/qZbYmrYQ06Ai/vmware-15-16-17-password-is-admin-rar#!ZGx0LmR2ZGN5L2DjBTD3AmxkATMyBJyOAwOgDxA+AGIxqwD1MN==
a tady je link na VMWare Image WindowsXPx32Profi a je tam už všechno potřebný nainstalovaný
včetně IDE FreshIDE pro assembler 8086 a turbo debugger od Borlandu v 5.0 a další věci:
https://uloz.to/file/7mgJBW8bAd2Y/winxpx32profi-password-is-admin-rar#!ZJD5LwR2AQtkAJR1MJD4AQHjLmR4LIxlMRSkJR55qRWfHGuuMN==
Dělá se to tak, že si stáhneš ty instalačky VMWare a zvolíš verzi 15 nebo 16 nebo 17 podle toho
jak máš silnej počítač - takže asi 15 a nainstaluješ si VMWare 15. Pak si stáhneš tu image
a nakopíruješ ji do vhodného adresáře třeba C:\IMAGES, rozbalíš ji a pak ji otevřeš
ve VMWARE a spustíš. Výhodou je, že si mužeš nadefinovat sdílený adresáře do disku C: a dalších
Je to velmi luxusní záležitost. Edituješ kod 8086 v editoru FreshASM a pak ho zkompiluješ
a debugger se pouští v menu Debug/ExternalDebugger. Kompilace je Ctrl+F9.
V TurboDebuggeru se pro zobrazení uživatelský obrazovky používá klávesa Alt+F5 a klávesou
Alt+Enter se vstupuje/vystupuje z okenního režimu. U každého otevřeného okna DOSU si mužeš
zvolit velikost fontu vlevo nahoře u každého okna je ikona a když na ni klikneš pravým tlačítkem
myši tak se otevře menu kde si zvolíš font.
Jinak tady je vypracování toho prvního bodu:
ORG 0x0000
L_40:
MOV AX, 0x0003
INT 0x10
L_50:
MOV AX, 0xB800
MOV ES, AX
MOV AX, 0x0000
MOV DI, AX
MOV AX, 0x0700 ; color 0x07-white, ASCII 0x00
MOV CX, 0x0FA0
CLD
REP STOSW
L_60:
MOV AX, 0xB800
MOV ES, AX
MOV AX, 0x0000
MOV DI, AX
MOV AX, 0x0748 ; 0x0D41
MOV CX, 0x0050
CLD
L_70:
STOSW
PUSH AX
PUSH CX
PUSH DX
PUSHF
MOV AX, 0x8600
MOV CX, 0x0000 ; CX:DX pause in milisec
MOV DX, 0x0096 ; 150ms
INT 0x15 ; wait
POPF
POP DX
POP CX
POP AX
DEC CX
CMP CX, 0x0000
JNE L_70
Endprog:
; ukonceni programu - povinna sekvence int21h/4c00h
MOV AX, 0x4C00
INT 0x21
a tady je vypracování toho druhýho bodu:
ORG 0x0000
MOV DL, 0x00
DEc DL
L_40:
MOV AX, 0x0003
INT 0x10
MOV DH, 0x00
L_60:
MOV AX, 0x0200
MOV BX, 0x0000
MOV DL, 0x4F
INT 0x10
MOV AX, 0x0A58
MOV BX, 0x0000
MOV CX, 0x0001
INT 0x10
INC DH
CMP DH, 0x0018
JNE L_60
MOV DL, 0x4F
L_70:
MOV AX, 0x0200
MOV BX, 0x0000
MOV DH, 0x18
INT 0x10
MOV AX, 0x0A58
MOV BX, 0x0000
MOV CX, 0x0001
INT 0x10
DEC DL
CMP DL, 0x00FF
JNE L_70
L_80:
Endprog:
; ukonceni programu - povinna sekvence int21h/4c00h
MOV AX, 0x4C00
INT 0x21
si chytrý chlapec a s tim třetím bodem si ještě poradíš.
Tady je ještě hezký a funkční návod jak se zapisuje text na obrazovku:
Code:
org 100h
use16
lea bx, [text1]
mov [x], 50
mov [y], 13
mov [color], 13
call print
mov ax, 4c00h
int 21h
print:
; bx = pointer to text string
push 0b800h
pop es
mov ax, word [y]
mov dx, 80
mul dx
add ax, word [x]
mov dx, 2
mul dx
mov di, ax
mov ah, byte [color]
redo:
mov al, byte [bx]
cmp al, 0
jz quit
stosw
inc bx
jmp redo
quit:
ret
x dw ?
y dw ?
color db ?
txt dw ?
text1 db 'Ahoj',0
v turbo debuggeru je potřeba ho spustit a nechat proběhnout celý aby se text zobrazil
jinak si už jistě pochopil, že pro zobrazení textu s NASM potřebuješ instrukce STOWS/MOVSW
a to i když chceš zobrazit jen jeden znak. Prostě současný asm nějak neumí MOV mem1, mem2.
Nechápu proč. Aby si to tedy správně pochopil, tak místo 'Ahoj' dáš '97531'. Ty tvoje
zadání sou docela hodně pošahaný.
Tak to je asi tak všechno. By mě zajímalo co je to za konkrétní školu.
To je někde v Praze ? V Brně ?
Připojen obrázek.