Asembler

Ak potrebujete pomoc alebo poradiť, píšte sem (len PC, elektronika atď.)...
h.olub
King
King
Používateľov profilový obrázok
Príspevky: 1712
Registrovaný: 10 aug 2009, 11:58
Bydlisko: Bratislava

Asembler

Príspevok od používateľa h.olub »

Zdravim, tak som zacal trocha kodit v asembleri (8086) kde kod prekladam pomocou tasm. Problem je v tom ze win7 professional x64 mi hlasi problem s kompatibilitou systemu pravdepdobne prave preto ze je 64-ka. Teda sa chcem opytat ci sa to da nejako spravit alebo to musim riesit nejak inak napr. cez virtual PC.

Vdaka.
Sapo
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4341
Registrovaný: 17 mar 2009, 17:51
Bydlisko: Partizanske

Re: Asembler

Príspevok od používateľa Sapo »

Vysksuaj to spustit s kompatibilitou Win XP ako Spravca.
JR55
Novice
Novice
Príspevky: 5
Registrovaný: 21 apr 2010, 9:44

help

Príspevok od používateľa JR55 »

mohol by mi niekto pomoct. Stale mi to hlasi chybu.
Zadanie:
Načítajte z klávesnice reťazec znakov ukončených znakom konca riadku. Slová vo vstupe sú oddelené najmenej jedným znakom medzera. Uvažujte aj prvé, resp. posledné slovo vstupu. Určte počet čísel menších ako 1. uvedené číslo reprezentovaných slovami. Počet vytlačte dvojkovo.

zdrojak:

Kód: Vybrať všetko

%include "asm_io.inc"

segment .data

no1 times 2048 db 0

segment .bss
no2 resb 80

segment .text
global _asm_main

_asm_main:
enter 0,0
pusha
mov ebx,no1
mov edx,no2

mov ebx,0
mov ecx,0
mov edx,0

prve_pismeno:
call read_char
cmp al,20h
jz prve_pismeno
cmp al,0ah
jz koniec1
cmp al,30h
jc znak1
cmp al,40h
jnc znak1

prva_cislica1:
mov byte[edx],al
inc edx
call read_char
cmp al,0ah
jz koniec1
cmp al,20h
jnz dalsia_cislica1
jmp cele_cislo

cele_cislo:
inc cl
call read_char
cmp al,20h
jz cele_cislo
cmp al,0ah
jz koniec2
cmp al,30h
jc znak2
cmp al,40h
jnc znak2
jmp prva_cislica2

prva_cislica2:
mov byte[ebx],al
inc ebx
call read_char
cmp al,0ah
jz koniec2
cmp al,20h
jnz dalsia_cislica2
cmp ebx,edx
jnc nulovanie
inc cl
jmp nulovanie

koniec1:
add cl,'0'
mov eax,ecx
call print_string
popa
mov eax,0
leave
ret

koniec2:
cmp ebx,edx
jnc koniec1
inc cl
jmp koniec1

znak1:
call read_char
cmp al,0ah
jz koniec1
cmp al,20h
jz prve_pismeno
jmp znak1

dalsia_cislica1:
cmp al,30h
jz znak1
cmp al,40h
jnc znak1
jmp prva_cislica1

znak2:
call read_char
cmp al,0ah
jz koniec2
cmp al,20h
jz cele_cislo
jmp znak2

dalsia_cislica2:
cmp al,30h
jz znak2
cmp al,40h
jnc znak2
jmp prva_cislica2


nulovanie:
mov ebx,0
jmp cele_cislo
pls potreboval by som najst chybu a popripade pomoct s tym vytlacenim dvojkovo
Napísať odpoveď