[Asm] Czy wykonywania rozkazow

0

Mam takie pytanko jesli pisze sie normalnie dla trybu 8086 i przeglda wplik lst to z lewj strony sa czasy wykonywania rozkazow np:
0025 15 80 3C FF CMP BYTE PTR [SI], 0FFH
0017 19 E8 0005 CALL Main_1
ale gdy zadeklarujemy tryb .386 to w czasach wykonywania rozkazow pokazuja sie czasem literki:
001A 7m E8 0133 call wczytaj
0025 7m,3 73 02 jae hop2

Wie ktos moze co to oznacza, w tym pierwszym przypadku dla cmp jest np 15 cykli zegara a dla call 19, a w trybie .386 co oznacza to 7m?

0

Czego używasz do generowania pliku lst? U mnie nie ma żadnych czasów wykonywania, jedynie offset i kod instrukcji.

A jeżeli chodzi o literki na >386, to może oznaczają opóźnienia wywołane przez tzw. wait states?

0

Pisane w MASMIE lst wygenerowany w pwb, no niewazne. mam inne pytanie jesli uzywamy dyrektywy .startup to inicjowany jest segment danych i segment stosu. Teraz innaczej: Powiedzmy ze jest tak:
.model small
.stack 100h
.data
kod segment use16 'code'
;i w kodzie
mov eax,@data
mov ds,ax ;czyli zainicjowanie segmetu danych , nie ma nic o stosie nie ma .startup. W programie uzywam stosu i skad teraz asembler wie gdzie jest poczatek tego segmentu stosu, nigdzie nie ma inijowanego ani ss ani sp, a program dziala dobrze, jakis poczatek tego stosu jest wygeneowany ale skad?

0

.stack 100h

Czy nie wygląda to na inicjację segmentu? Czy oprócz tego musisz samodzielnie inicjować ss? Poczytaj, pomyśl i sam sobie odpowiedz.

0

Pomyliłem się troszkę, w poprzedniej odpowiedzi... model small to 64k kodu + 64k danych i stosu razem

0

Wiem ze tak jest i normalnie przy stosowaniu dyrektyw uproszczonych poczatek segmentu danych jest taki sam jak segment stosu, ale w tym przypadku co podalem po inicjacji segmentu DS ma on przykladowa wartosc 2226 natomiast SS 224C.

0

Przećiez stos nie moze sie nakładac na segment danych całkowicie.
.stack 100h do segment stosu. .data to segment danych. razem nie moga przekroczyć 64k. poza tym w tym przypadku segment stosu należy do segmentu danych, ale przecież nie może mieć tej samej wartości, bo do cięzkiej jasnej nie mógłbys mieć ani stosu ani danych. To samo tylko nie w trybie ideal: ....

assume ds:data,ss:stack_

data segment
  dane db ...

  stack_ segment stack
    db 256 dup(?)
  stack_ ends

data ends

1 użytkowników online, w tym zalogowanych: 0, gości: 1