Projekt symulator procesora intel 8086 w C#

0

Witam
Mam do zrobienia projekt symulacji rozkazu MOV dla procesora intel 8086 w C#.
Zrobiłam już interfejs (plik w załączniku). I działa mi już przycisk random że losuje liczby czterocyfrowe np dla AX wygląda to tak:

{
int i = r.Next(1000, 10000);
if (list.Contains(i))
continue;
else
list.Add(i);
}
tbAX.Text = list[0].ToString();

ale chciałabym dodać do tego też litery z zakresu A do F tak żeby też się wyświetlały np 1F05 a nie wiem jak to zrobić. Druga sprawa to chciałabym żeby po kliknięciu enter liczby przenosiły się do tych szarych pól obok i też nie wiem jaki kod mam wpisac na to.
Byłabym wdzięczna za pomoc

3

co do numeru hexdecimal to tak

i.ToString("X");

Druga sprawa to chciałabym żeby po kliknięciu enter liczby przenosiły się do tych szarych pól obok i też nie wiem jaki kod mam wpisac na to.

my tez nie wiemy, bo nie widzimy kodu ;)

2
GimmieSugar napisał(a):

Witam

Mam do zrobienia projekt symulacji rozkazu MOV dla procesora intel 8086 w C#.

Ok - pewnie na jakieś zaliczenie.

Zrobiłam już interfejs (plik w załączniku).

Piękny

I działa mi już przycisk random że losuje liczby czterocyfrowe np dla AX wygląda to tak:
{
int i = r.Next(1000, 10000);
if (list.Contains(i))
continue;
else
list.Add(i);
}
tbAX.Text = list[0].ToString();

To dobrze, że działa

ale chciałabym dodać do tego też litery z zakresu A do F tak żeby też się wyświetlały np 1F05 a nie wiem jak to zrobić.

Przekonwertować ana zapis szesnastowko - dmniemywuję, że o to ci się rozchodzi: https://www.delftstack.com/howto/csharp/integer-to-hexadecimal-in-csharp/

Druga sprawa to chciałabym żeby po kliknięciu enter liczby przenosiły się do tych szarych pól obok i też nie wiem jaki kod mam wpisac na to.
Byłabym wdzięczna za pomoc

Obsłużyć przycisk Enter na jakiś zdarzeniu i tam przepisać z jednego pola do drugiego.

3

Wiesz, że 8086 zawiera trochę więcej rejestrów, niż te cztery, oraz do części z nich jest bezpośredni dostęp do górnych i dolnych ośmiu bitów (np. ah, dl)? Przypisania są możliwe w kilku trybach adresowych (natychmiastowe, rejestrowe, bezpośrednie, pośrednie, bazowe, indeksowe, indeksowo-bazowe). Będziesz robić wszystkie kombinacje dozwolonych przypisań? Wyjdzie kilka ekranów.
Wszystkie dostępne operacje, gdzie używane są tryby adresowania, również będą zajmowały mnóstwo miejsca.
Jak chcesz obsłużyć miejsca docelowe skoków, w tym skoki warunkowe (jest ich siedemnaście rodzajów) i wywołania (call)?
Instrukcji 8086 jest ponad sto, jak chcesz zrealizować sprawne znajdowanie instrukcji do wykonania?

Przemyś swój interfejs użytkownika, a wcześniej przeczytaj uważnie dokumentację do 8086 dotyczącą tego, jakie obsługuje instrukcje, jak te instrukcje działają oraz jakie parametry przyjmują.

0

Dobra zmieniłam to trochę
Wystaczyło do każdego przycisku dodać kod

private void btAXBX_Click(object sender, EventArgs e)
        {
            tbAX.Text = tbBX.Text;
        }

z odpowiednio zmienionymi nazwami.
Teraz robi to co miał robić czyli po kliknięciu MOV AX BX przepisuje liczbę z BX do AX
(Chyba że znowu coś źle zrobiłam i to w jakiś inny sposób ma działać xd)

A rejestry miały być tylko te podstawowe AX BX CX DX

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