• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wstawka assemblerowa dzielenie problem

Object Storage Arubacloud
0 głosów
429 wizyt
pytanie zadane 15 maja 2020 w Assembler przez Oskardes Użytkownik (600 p.)

Cześć. Mam problem. Mam napisać program w którym i,j,k są zmiennymi short int. W stawce assemblerowej ma się wykonać działania k=(i+j)%265. Jednak wyskakuje mi błąd: ,,Nieobsłużony wyjątek w lokalizacji 0x001A18A9 w Assembler.exe: 0xC0000095: Integer overflow.". 
 

#include <iostream>
using namespace std;

int main()
{
    short int i, j, k;
    i = 265;
    j = 265;
    _asm {
        mov ax, i;
        mov bx, j;
        mov cx, 265;
        add ax, bx;
        div cx;
        mov k, ax;
    }
    cout << k << endl;
}

 

komentarz 15 maja 2020 przez overcq Pasjonat (21,650 p.)
div dzieli dx:ax, a tutaj nie ustawiasz dx...

1 odpowiedź

0 głosów
odpowiedź 28 maja 2021 przez Witut Początkujący (310 p.)
edycja 28 maja 2021 przez Witut
Musisz wyzerować rejestr dx. Przy dzieleniu rejestr dx i ax się tak jakby się łączą. Może to powodować powstanie bardzo dużej liczby, która pomimo dzielenia np. 265 nadal będzie miała powyżej 16 bitów co spowoduje overflow, ponieważ pomimo tego, że wartości tych obu rejestrów się łączą i dzielenie jest wykonywane na tej połączonej liczbie wynik jest zapisywany w rejestrze ax a w dx jest zapisywana reszta z dzielenia.

Podobne pytania

0 głosów
0 odpowiedzi 225 wizyt
pytanie zadane 15 czerwca 2021 w C i C++ przez pawel_000 Początkujący (450 p.)
0 głosów
1 odpowiedź 2,018 wizyt
pytanie zadane 19 grudnia 2019 w Assembler przez progNewbie Obywatel (1,130 p.)
0 głosów
1 odpowiedź 210 wizyt
pytanie zadane 19 października 2023 w C i C++ przez Jerzy Użytkownik (930 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...