Asembler 8086 instrukcje

  • Rejestracja: dni
  • Ostatnio: dni
0

Witam .Mógłby ktoś mi wytłumaczyć co robi podany fragment kodu ?

Kopiuj
 assume ds:@data 
mov ax,@data 
mov ds,ax
mov ax,0a000h
mov es,ax
mov ax,0013h
int 10h

Czy chodzi o to że do rejestru segmentowego DS kopiowane segmentu danych , a następnie jest inicjacja trybu graficznego ? Z góry dziękuję za pomoc .

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Pomorskie (Stare Kabaty)
0

Ładuje do ds i es wartosci, potem ustawia tryb graficzny.
Czyli tak, dobrze myślisz.

  • Rejestracja: dni
  • Ostatnio: dni
0

a po co jest ta instrukcja ?
mov ax,0a000h

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Pomorskie (Stare Kabaty)
0

Ładuje do ax 0x0a00, bo nie można ładować bezpośrednio do rejestów segmentowych wartości.
Za poprawnośc tego kodu głowy nie dam (bo to zalezy od offsetu).

  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za pomoc.Mam jeszcze pytanie , co powinienem dopisac do tego kodu

Kopiuj
 MOV   BTXT[DI],AL      
        mov ax,0a000h
        mov es,ax
        MOV AX,0013H
        INT 10H 

aby zawartość w BTXT była pokolorowana?

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

w pamięci ekranu w trybie tekstowym jeden znak zajmuje dwa bajty: jeden bajt to kod ascii a drugi bajt to atrybut (4 bity koloru tła i 4 bity koloru znaku).
ale nie pamiętam w jakiej kolejności (czy atrybut jest przed znakiem czy za).
dużo kombinacji nie masz, albo będzie BTXT[DI-1] albo DI+1.

  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki.Mógłbyś jeszcze powiedzieć gdzie i jak to wpisać?

  • Rejestracja: dni
  • Ostatnio: dni
0

Bardzo bym prosił kogoś o pomoc bo próbowałem na różne sposoby i nic... :(

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.