LINUX.ORG.RU

ascii to dec

 ,


0

1

что-то я не так явно делаю. Нужно конвертнуть строку в десятичное число, всё это выполняется в загрузчике, вот, что я настряпал:

ascii_to_dec:
	mov si, testnum
	xor ax, ax
	xor dx, dx
	mov cx, 1
	mov bx, 10
.atd_begin:
	mov dx, [si]
	cmp dx, 0
	je .atd_done
	sub dx, '0'
	mul cx
	add dx, ax
	mov ax, cx
	mul bx
	mov cx, ax
	mov ax, dx
	inc si
	jmp .atd_begin
.atd_done:
	mov [number], ax
	ret

подозреваю, что это неправильное использование регистров или ещё что-то... времени нет совершенно уже разбираться, и да это курсач.


Возьми любую hello_world_os и посмотри там. Да даже на osdev.org на разных ассемблерах этот загрузочный сектор в вики есть. Нет, вот нужно напрягать лоровских аналитиков, когда сам даже погуглить не удосужился. Фу таким быть.

d ★★★★
()

Задача в универе?

Если это твой код, то ты не задумывался, что хотя бы из уважения к тем кого ты просишь помочь, стоило бы расставить комментарии, чтобы было ясно что ты делаешь?

Я тебе больше скажу, если ты расставишь комментарии, то ты сам и найдёшь в чём проблема. (это я тебе скажу не глядя в код)

invy ★★★★★
()
Ответ на: комментарий от fjord

Ирония в том, что ты выплюнул на лор свою портянку и ждёшь, когда же толпы анонимусов, называя друг друга непечатными словами, начнут тратить вечерние часы выходного дня на твоё неосиляторство.

d ★★★★
()
Ответ на: комментарий от d

твои тирады мне не интересны, извини

fjord
() автор топика

как и предполагал проблема была в половинках регистров

	mov dl, [si]
	cmp dl, 0
	je .atd_done
	sub dl, '0'
	mul cl
	add dx, ax
	mov al, cl
	mul  bl
	mov cl, al
	mov ax, dx
fjord
() автор топика
Ответ на: комментарий от fjord

Нефпадлу памаги разабраться:

00000000   1F 8B 08 00  00 00 00 00  00 03 DD 7D  0B 7C 5B 67  79 B7 6C 29  B6 DB 14 2A  DA 0E 14 06  43 B2 E5 58  ...........}.|[gy.l)...*....C..X
00000020   4A 43 91 3A  D8 AC B0 0D  EB E2 C4 72  D2 92 E3 16  88 DC 01 D6  CD B1 14 02  E4 04 18 51  36 48 24 D9  JC.:.......r...............Q6H$.
00000040   89 95 04 A8  DD C2 56 B3  D1 44 B2 DB  24 BD 70 DD  85 5D 63 CB  76 9B 8E 74  63 5C 77 C5  B6 6C D3 04  ......V..D..$.p..]c.v..tc\w..l..
00000060   28 63 1B DB  F7 B1 6F F9  9E FF F3 9C  23 C9 76 F8  7E 7C 3F CE  BE 6F BF F9  FD 49 3E 3A  3A E7 3D EF  (c....o.....#.v.~|?..o...I>::.=.
00000080   FB 7F 9F CB  FF 79 DE F7  1C BD ED 6D  F7 BD D5 44  7F D6 7B 93  BF 66 DF 1F  3D 98 C4 87  C6 FB 7B EE  .....y.....m...D..{..f..=.....{.
000000A0   09 98 4C BF  F1 D2 06 D3  A3 A6 44 A3  6D B6 25 DE  12 B0 E6 AD  39 6B 89 DE  B9 B4 C4 69  BB 64 CD D1  ..L.......D.m.%.....9k.....i.d..
000000C0   37 71 BC F3  DE 12 1F B5  E6 08 DB AC  35 8F F3 AB  FB 4B F8 CC  2F ED 5B FC  AF FB 5E 3F  17 B5 F9 71  7q..........5....K../.[...^?...q
000000E0   05 3E 32 27  5B 2D 31 39  BF 25 66 9B  75 34 D9 66  51 B3 6D C5  D1 E4 1E 5A  7B EE FA FA  B8 86 9C F4  .>2'[-19.%f.u4.fQ.m....Z{.......
00000100   40 EA D6 0A  1F CF 7D C8  D7 CE AA EF  85 76 EC 24  8E E1 7E A0  AF 39 39 9B  8E 13 0C 02  B2 47 FB 2C  @.....}......v.$..~..99......G.,
00000120   F5 6A FF 81  5C 4B DC D1  E1 D8 8A 16  50 FB F3 B5  6B F1 D6 A4  76 6C 15 9D  BA 96 94 34  6C EA 5A AA  .j..\K......P...k...vl.....4l.Z.
00000140   EF 45 DF 6B  FB 37 62 C8  C7 52 8B 70  94 86 3F 8E  CD F1 B1 82  FE 24 30 44  AB DC 43 B6  65 FD FC 2A  .E.k.7b..R.p..?......$0D..C.e..*
00000160   06 5A FB 04  0B BD A7 3C  5E D2 FB 1C  7F 3F 89 DE  AD 1B B7 BA  3A F8 EC 92  56 4F AD 97  79 ED 6C AD  .Z.....<^....?......:...VO..y.l.
00000180   E6 96 98 3E  02 75 88 F3  96 A3 89 5A  48 9F 49 3E  4B 8C 7F A0  86 2E 7F 9A  D4 64 32 A7  EF E5 FE 4D  ...>.u.....ZH.I>K........d2....M
000001A0   EA 12 C3 12  A6 8F 49 AE  0E CD 92 FE  0D BD E7 6A  9F 34 94 4A  B5 02 59 33  39 B8 27 B9  DA 77 8C 3E  ......I........j.4.J..Y39.'..w.>
000001C0   A1 61 5B 36  39 30 AA C0  4F 6B 0B 5F  41 7F 31 D2  3A 5E 39 39  8B AF 35 A9  49 E2 64 FD  B5 D6 C9 CE  .a[690..Ok._A.1.:^99..5.I.d.....
000001E0   BA C2 B2 A3  69 21 8F AB  60 98 D3 CF  A9 4A 41 5D  1D 26 87 8C  98 8C 94 E9  BF E6 9F 83  5A E6 F8 FF  ....i!..`....JA].&..........Z...
Я съел 2 яблока, теперь не могу добыть чашу. ВОт мой сэйв что делать?

andreykyz ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.