админы извиняюсь вчера ету тему начал не там где надо) почитал есче информации и поискав вдоволь,везде, где только хватило воображения,решил прибегнуть к вашей помоще! я новичок есче в языках програмирования, и такое задание как : запрограмировать МП 8086, с помощью debug'а ,привело често говоря в тупик меня, моих знаний недостаточно для этого, мне вчера говорили, не здесь, что ето несложно, но пока моему мышлению ето неподвласно. Задание простюсенькое -- десятичные числа перевести в шестнадцатеричные! на чемодане под названием К1810ВМ86 ! Помогите люди добрые !
Drejan Вот второй результат Гугла по фразе "перевод десятичного числа в шестнадцатеричное": http://www.atomlink.ru/~courier/mkt/MKT.htm На пальцах всё разобрано (1.1 Системы счисления).
Drejan блин, да сядь ты и выучи ассемблер. По Калашникову - за вечер все выучишь!!! Дольше просишь тут. Сам бы уже давно сделал!!!
уже осознал это)) начинаю компилировать в бошке всё , НО если кто чем может помочь помогите, какие примерчики или есче чего,буду тока рад ))
Как работает асм - читай калашникова. Функцию перевода тебе уже давали. Какие конкретно появились вопросы/трудности?
я пока размышляю над алгоритмом как всё происходить должно,а что за книженци может ссылочку дадите ???
Ну вот написал я что то вроде програмы, тока она нефурычить Код (Text): 0АЕВ :0200 mov ax,[0888] 0AEB:0203 jmp 00A0 a00A0 0AEB:00A0 cmp ax,09 0AEB:00A3 jz 00f6 0AEB:00A5 cmp dl,0 0AEB:00A8 jz 00af 0AEB:00AA inc ax 0AEB:00AB dec dl 0AEB:00AD jmp 00a0 0AEB:00AF cmp ax,09 0AEB:00B2 jz 00f6 0AEB:00B4 cmp dh,0 0AEB:00B7 jz 00c0 0AEB:00B9 dec dh 0AEB:00BB mov dl,0 0AEB:00BD inc ax 0AEB:00BE jmp 00a0 0AEB:00C0 cmp ax,09 0AEB:00C3 jz 00f6 0AEB:00C5 cmp cl,0 0AEB:00C8 jz 00d2 0AEB:00CA dec cl 0AEB:00CC mov dx,0 0AEB:00CF inc ax 0AEB:00D0 jmp 00a0 0AEB:00D2 cmp ax,09 0AEB:00D5 jz 00f6 0AEB:00D7 cmp ch,0 0AEB:00DA jz 00e6 0AEB:00DC dec ch 0AEB:00DE mov cl,0 0AEB:00E0 mov dx,0 0AEB:00E3 inc ax 0AEB:00E4 jmp 00a0 0AEB:00E6 cmp ax,09 0AEB:00E9 jz 00f6 0AEB:00EB dec bl 0AEB:00ED mov cx,0 0AEB:00F0 mov dx,0 0AEB:00F3 inc ax 0AEB:00F4 jmp 00a0 0AEB:00F6 mov [0779],bl 0AEB:00FA mov al,dh 0AEB:00FC mov bh,dl 0AEB:00FE mov bl,16 0AEB:0100 -a00fe 0AEB:00FE mov bl,16 0AEB:0100 mul bl 0AEB:0102 add al,bh 0AEB:0104 mov [0777],al 0AEB:0107 mov ax,0 0AEB:010A mov al,ch 0AEB:010C mov bh,cl 0AEB:010E mul bl 0AEB:0110 add al,bh 0AEB:0112 mov [0778],al у кого какие соображения ,что неверно? ето для 16 бит, на дебуге делал всё! по примеру HEX --> DEC , что исправить а что бы звфурычила ?
я написал вот такой цикл Код (Text): 0AEB:0100 MOV AX,[400] 0AEB:0103 MOV CX,100 0AEB:0106 ADD BX,AX 0AEB:0108 DEC CX 0AEB:0109 JNZ 0106 0AEB:010B -E400 0AEB:0400 06.06 00.00 g=0100 01A0 мне бросает ошибку,либо считает цикл неверно , в чём ошибка, я в ручную посчитал выходт 600(hex) а после того как используу g=0100 01A0 получаю число ну никак напохожее на 600! в чём ошибка ?
а в bx что хранится? и что ты хочешь получить в результате этого цикла? по идее дожно быть bx + [400] * 100.
на BX 0000, когда делаю в ручную, то получаю 600 на BX, а вручную нехочу делать, мне кетот цикл неполучается, спрашивается почему, неверно ввожу может -g=0100 010A может тут надо больше ьрать а не 010А?