Как запустить данный код ассемблера - Assembler
Формулировка задачи:
Как или при помощи чего запустить данный код? пробовал с помощью TASM.EXE и TLINK.EXE пришет почти в каждой строке ошибка
; multi-segment executable file template. data segment s1 db 'vvedite chislo v vosmerichnoii sisteme schislenia:$' s2 db 'chislo v dvoichnoi sisteme schislenia:$' s3 db 'chislo v vosmerichnoi sisteme schislenia:$' s4 db 'chislo v desiatichnoi sisteme schislenia:$' s5 db 'invertirovat nechetnie bity:$' s6 db 'rezmer chisla bolhe 2 bait:$' s7 db 'vmesto cifru vveden drugoi simvol:$' buf db 8,0 bufs db 8 dup(0) chislo dw 0 ends stack segment dw 128 dup(0) ends code segment start: ; set segment registers: mov ax, data mov ds, ax mov es, ax ;ustanovka kursora xor ax,ax mov ah,02h mov dh,0 mov dl,0 int 10h ;vivod s1 lea dx,s1 mov ah,9 int 21h call perenos ;sbros bufera v2:mov cx,7 lea di,bufs mov al,13 rep stosb v3:mov ah,0Ah lea dx,buf int 21h ;proverka vvedeni li simvoli lea si,bufs lodsb cmp al,'-' jne v4 lodsb v4:cmp al,13 je v3 mov cx,6 dec si v5:lodsb cmp al,13 je v6 cmp al,48 jl v7 cmp al,55 jg v7 v6:dec cx cmp cx,0 jne v5 jmp v8 ;vivod s2 v7:call perenos lea dx,s7 mov ah, 9 int 21h call perenos jmp v2 ;proverka znaka v8:lea si,bufs lodsb cmp al,'-' je v13 ;proverka vvedeno pol chislo razmerom 2 baita lea si,buf[1] lodsb cmp al,5 jle v10 cmp al,7 jl v9 lodsb cmp al,'0' jg v12 v9:lodsb cmp al,'0' jg v12 ;dekodirovanie pol chisla v10:lea si,buf[1] lodsb xor cx,cx mov cl,al xor bx,bx v11:lodsb and ax,7 sal bx,3 or bx,ax loop v11 mov chislo,bx jmp v16 ;vivod s3 v12:call perenos lea dx,s6 mov ah, 9 int 21h call perenos jmp v2 ;proverka vvedeno otr chislo razmerom 2 baita v13:lea si,buf[1] lodsb cmp al,7 jl v14 inc si mov cl,al dec cl lodsb cmp al,'1' jl v14 jg v12 mov di,si repne scasb cmp cx,0 jne v12 ;dekodirovanie otr chisla v14:lea si,buf[1] lodsb xor cx,cx mov cl,al dec cx inc si v15:lodsb and ax,7 sal bx,3 or bx,ax loop v11 neg bx mov chislo,bx ;vivod s2 v16:call perenos lea dx, s2 mov ah, 9 int 21h call perenos ;vivod v dvoichnoi sisteme schislenia mov bx,chislo mov cx,16 o1:mov dx,bx rol dx,1 mov bx,dx and dx,1 add dl,030h mov ah,2 int 21h loop o1 ;vivod s3 call perenos lea dx, s3 mov ah, 9 int 21h call perenos ;vivod v shesnadcaterichnoi sisteme schislenia mov bx,chislo mov dx,bx rol dx,1 mov bx,dx and dx,1 add dl,030h mov ah,2 mov al,dl int 21h mov cx,5 o2:mov dx,bx rol dx,3 mov bx,dx and dx,7 add dl,030h mov ah,2 int 21h loop o2 ;vivod s4 call perenos lea dx, s4 mov ah, 9 int 21h call perenos ;vivod v desiatichnoi sisteme schislenia mov cx,5 mov bx,10 cmp chislo,0 jge o3 mov ah,2 mov dl,'-' int 21h o3:mov ax,chislo cwd idiv bx mov chislo,ax cmp dx,0 jge o7 neg dx o7:push dx loop o3 mov cx,5 o6:pop dx add dl,030h mov ah,2 int 21h loop o6 ;vivod s5 call perenos lea dx, s5 mov ah, 9 int 21h call perenos ;invertiruem mov cl,buf[1] lea si,bufs o8:lodsb mov ah,al not al and al,010101010b and ah,001010101b or al,ah mov ch,8 mov bl,al z1:mov dl,bl rol dl,1 mov bl,dl and dl,1 add dl,030h mov ah,2 int 21h dec ch cmp ch,0 jg z1 loop o8 mov ah, 1 int 21h mov ax, 4c00h ; exit to operating system. int 21h perenos proc mov ah,2 ;s novoi stroki mov dl,0dh int 21h mov ah,2 ;s nacala stroki mov dl,0ah int 21h ret perenos endp ends end start ; set entry point and stop the assembler.
Решение задачи: «Как запустить данный код ассемблера»
textual
Листинг программы
o7: push dx loop o3 mov cx,5 o6: pop dx
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д