Товарищи! Нужна помощ! Нужно напсиать программу перевода введеного с клавиатуры числа из десятичной системы в двоичную. Пытался написать: Код (Text): ;‘…ѓЊ…Ќ’ „ЂЌЌ›• Data Segment err1 db "ЋиЁЎЄ ў ў®¤Ґ зЁб« .",10,13,'$' text db "‚ўҐ¤ЁвҐ зЁб«®",10,13,'$' buf db 8 dup(?) dva db 2 x dw 10 buffer db 6 Data ends ;++++++++++++++++++++++++++++++++++++++++++++++++++++ ;//////////////////‘…ѓЊ…’Ќ ЉЋ„Ђ ;++++++++++++++++++++++++++++++++++++++++++++++++++++ Code segment assume cs:code, ds:data; start: mov ax,data mov ds,ax ;-------ЏаҐ¤« Ј Ґ¬ ўўҐбвЁ зЁб«®: mov ah,9h lea dx,text int 21h ;-------‘®Ўб⢥® б ¬ ўў®¤: mov ah,0Ah lea dx,buffer ;ў ЎгдҐа § ЇЁблў Ґ¬ ўўҐ¤Ґго бва®Єг. int 21h mov cl,buffer[1] ;***‚ ‘• ’…ђЏ…ђњ xor ch,ch ;***„‹?ЌЂ ‘’ђЋЉ? mov ax,1 dlin: cmp cx,1 jle exx mul x exx: loop dlin mov si,2 mov cl,buffer[1] ;***‚ ‘• ’…ђЏ…ђњ;; xor ch,ch ;***„‹?ЌЂ ‘’ђЋЉ? mov bx,ax xor dx,dx cycl: mov al,buffer[si] sub al,48 xor ah,ah mul bx add dx,ax shr bx,5 inc si loop cycl mov ax,dx mov cx,8 mov si,2 viv: div dva push ax cmp ah,0 jne _1 mov al,48 mov buf[si],al ; int 29h jmp exx1 _1: mov al,49 mov buf[si],al ; int 29h exx1: pop ax inc si loop viv mov cx,8 mov si,2 ppp: mov al,buf[si] int 29h inc si loop ppp ;‚›•Ћ„ ў.... mov ax,4C00h int 21h ;*-*-*-*-*-*-*-*-* Code ends ;binary proc ; Ret ;binary endp end start Но не получилось... переводит только числа от 1 до 9 и то не переворачивает запись... Надеюсь на вашу помощ.
В том-то и дело что ничего стоящего не нашел.... по этому и спрашиваю... если дадите ссылку, буду рад.
Собственно вот так работает. Но как сделать чтобы переводилось введеное число? Код (Text): mov cx,8 mov ax,61 mov si,2 ;‚›•Ћ„ ў.... cycl: div dva push ax cmp ah,0 jne ed mov al,48 mov buf[si],al ; int 29h jmp exxx ed: mov al,49 mov buf[si],al ; int 29h exxx: pop ax inc si loop cycl mov cx,8 mov si,cx viv: mov al,buf[si] int 29h dec si loop viv
Вот, сделал перевод, вроде бы все нормально, но почемуто есть небольшая погрешность, например вместо 58 выдает 55 и т.д. Помогите разобраться почему??? Вродебыпрограмма уже сделана... остался только вот этот момент Код (Text): xor ax,ax pusha per_ch: mov bl,buffer[si] sub bl,48 xor bh,bh add ax,bx cmp cx,1 jle exx mul d10 exx: loop per_ch mov x,ax popa mov ax,x