Здрасьте, уважаемые! Короче, у меня проблема по ассемблеру. Даже две. 1) Надо сделать так в COM-файле, чтобы вывести содержимое регистра (сx, например) на экран. 2) Надо сделать так, чтобы при запуске COM программы, выводилось приглашение ввести какое-то значение и после Enter оно заносилось в регистр. Помогите. От этого зависит судьба, так сказать...
В общем, это нужно для реализации алгоритма Евклида. Само тело готово. Не могу реализовать ввод двух чисел, ну и вывод содержимого регистра на экран.
Вывод сразу всех регистров Код (Text): ;@echo off ;goto make macro hex2ascii { cmp al,10 sbb al,69h das } org 100h use16 mov [temp_reg], sp push ax push bx push dx push cx push si push di push bp mov si, (_sp - _ax) mov cx, 8 jmp @do @@: pop [temp_reg] @do: call convert_proc mov WORD [_ax+si], ax mov WORD [_ax+si+2], dx sub si, (_bx - _ax) loop @B ; вывод строки mov ah, 9 mov dx, string int 21h ret convert_proc: mov al, BYTE [temp_reg] call al2ascii mov dx, ax mov al, BYTE [temp_reg+1] call al2ascii ret al2ascii: aam 16 hex2ascii xchg al, ah hex2ascii ret temp_reg dw ? string db 'ax=' _ax rb 4 db 13,10 db 'bx=' _bx rb 4 db 13,10 db 'dx=' _dx rb 4 db 13,10 db 'cx=' _cx rb 4 db 13,10 db 'si=' _si rb 4 db 13,10 db 'di=' _di rb 4 db 13,10 db 'bp=' _bp rb 4 db 13,10 db 'sp=' _sp rb 4 db '$' ;:make ;SET PROJECTNAME=first_com4 ;if exist %PROJECTNAME%.com del %PROJECTNAME%.com ;C:\FasmC\fasm.exe %PROJECTNAME%.bat %PROJECTNAME%.com ;pause ;cls