Вот код...вроде ошибок нет, но obj не создает :( что делать? компилирую так TASM.exe /zi 1.asm
| Код | ;----Prg_6_1.asm--------------- ;Программа преобразования двузначного шестнадцатеричного числа ;в символьном виде в двоичное представление ;Вход: исходное шестнадцатеричное число из двух цифр, ;вводится с клавиатуры. ;Выход: результат преобразования помещается в регистр dl. ;------------------------------ ;------------------------------ data segment para public "data" ;сегмент данных message db "Введите две шестнацетиричные цифры" data ends stk segment stack db 256 dup ("?") ;сегмент стека stk ends code segment para public "code" ;начало сегмента кода main proc ;начало процедуры main assume cs:code, ds:data, ss:stk mov ax,data ;aдрес сегмента данных в регистр ax mov ds,ax ;ax в ds mov ah,9 mov dx,offset message int 21h xor ax,ax ;очистить регистр ax mov ah,1h ;1h в регистр ah int 21h ;генерация прерывания с номером 21h mov dl,al ;содержание регистра al в регистр dl sub dl,30h ;вычитание: (dl)=(dl)-30h cmp dl,9h ;сравнить (dl) c 9h jle M1 ;перейти на метку M1, если dl<9h или dl=9h sub dl,7h ;вычитание: (dl)=(dl)-7h M1: ;определение метки М1 mov cl,4h ;пересылка 4h в регистр cl shl dl,cl ;сдвиг содержимого dl на 4 разряда влево int 21h ;вызов прерывания с номером 21h sub al,30h ;вычитание: (dl)=(dl)-30h cmp al,9h ;сравнить (al) c 9h jle M2 ;перейти на метку М2, если al<9h или al=9h sub al,7h ;вычитание: (al)=(al)-7h M2: ;определение метки М2 add dl,al ;сложение: (dl)=(dl)+(al) mov ax,4c00h ;пересылка 4c00h в регистр с номером 21h int 21h ;вызов прерывания с номером 21h main endp ;конец процедуры main code ends ;конец сегмента кода end main ;конец программы с точкой входа main
|
P.s на комментарии не обращайте внимание  |