Подпишите пожалуйста к каждой строчке, что она означает.
.model small
.data
A dw 2438h
B dw 1325h
R1 dw ?
R2 dw ?
.code
start:
mov ax,@data
mov ds,ax
;1. Переставить 1-ю и 3-ю тетрады в слове А
mov ax,A
mov dx,ax
and ax,0F0Fh
mov cl,8
ror dx,cl
and dx,0F0F0h
or ax,dx
mov R1,ax
;2. Сложить А и В в двоично-десятичном виде
mov al,byte ptr A
add al,byte ptr B
daa
mov byte ptr R2,al
mov al,byte ptr A+1
adc al,byte ptr B+1
daa
mov byte ptr R2+1,al
mov ax,4C00h
int 21h
end start
code ends
Другие языки программирования и технологии
Программисты, знающие ассемблер, помогите.
.model small; - директива что у нас будет .com файл ( не больше 64Кб)
.data ; - начало сегмента данных
A dw 2438h ; - присваиваем переменной А размером двойной слово (4байта) значение 2438 в 16-ричной системе
B dw 1325h; - присваиваем переменной B размером двойной слово (4байта) 1325 в 16-ричной системе
R1 dw ? ;Оставляем место в 4 байта для переменной R1
R2 dw ?; Оставляем место в 4 байта для переменной R2
.code ; сегмент кода - исполнения
start:
mov ax,@data ; в сегмент ах заносим начало памяти, выделенную под сегмент данных.
mov ds,ax ; из ах в дс переносим, таким образом настроили дс на работу
с данными
;1. Переставить 1-ю и 3-ю тетрады в слове А
mov ax,A ;переменную А в ах ах=2438h
mov dx,ax ; из ах в дх=2438
and ax,0F0Fh ; "and" обнуляет 1й и 3й байт (считать от нуля)
mov cl,8 ; в кл регистр заносим 8
ror dx,cl ; делаем сдвиг на байт вправо дх теперь=4080
and dx,0F0F0h
or ax,dx
mov R1,ax
;2. Сложить А и В в двоично-десятичном виде
mov al,byte ptr A
add al,byte ptr B
daa
mov byte ptr R2,al
mov al,byte ptr A+1
adc al,byte ptr B+1
daa
mov byte ptr R2+1,al
mov ax,4C00h
int 21h
end start
code ends
НЕ НУ РЕАЛЬНО МНОГО КОДА, ЧТОБЫ ОПИСЫВАТЬ. а ВЕДЬ ВСЕ ЭЛЕМЕНТАРНО! ДАВАЙ ДАЛЬШЕ САМ. ЧЕМ БОЛЬШЕ НЕУЧЕЙ СРЕДИ ПРОГРАММИСТОВ, ТЕМ ЦЕННЕЕ НОРМАЛЬНЫЕ)))
.data ; - начало сегмента данных
A dw 2438h ; - присваиваем переменной А размером двойной слово (4байта) значение 2438 в 16-ричной системе
B dw 1325h; - присваиваем переменной B размером двойной слово (4байта) 1325 в 16-ричной системе
R1 dw ? ;Оставляем место в 4 байта для переменной R1
R2 dw ?; Оставляем место в 4 байта для переменной R2
.code ; сегмент кода - исполнения
start:
mov ax,@data ; в сегмент ах заносим начало памяти, выделенную под сегмент данных.
mov ds,ax ; из ах в дс переносим, таким образом настроили дс на работу
с данными
;1. Переставить 1-ю и 3-ю тетрады в слове А
mov ax,A ;переменную А в ах ах=2438h
mov dx,ax ; из ах в дх=2438
and ax,0F0Fh ; "and" обнуляет 1й и 3й байт (считать от нуля)
mov cl,8 ; в кл регистр заносим 8
ror dx,cl ; делаем сдвиг на байт вправо дх теперь=4080
and dx,0F0F0h
or ax,dx
mov R1,ax
;2. Сложить А и В в двоично-десятичном виде
mov al,byte ptr A
add al,byte ptr B
daa
mov byte ptr R2,al
mov al,byte ptr A+1
adc al,byte ptr B+1
daa
mov byte ptr R2+1,al
mov ax,4C00h
int 21h
end start
code ends
НЕ НУ РЕАЛЬНО МНОГО КОДА, ЧТОБЫ ОПИСЫВАТЬ. а ВЕДЬ ВСЕ ЭЛЕМЕНТАРНО! ДАВАЙ ДАЛЬШЕ САМ. ЧЕМ БОЛЬШЕ НЕУЧЕЙ СРЕДИ ПРОГРАММИСТОВ, ТЕМ ЦЕННЕЕ НОРМАЛЬНЫЕ)))
Учебник по ассемблеру в MS DOS Вам в руки!
Похожие вопросы
- Кто знает ассемблер, помогите!
- Почему многие программисты ненавидят ассемблер?Ведь у него куча плюсов!Он позволяет максимально задействовать
- Нужно ли знать ассемблер, чтобы стать профессиональным программистом???
- Ассемблер. помогите решить!!!
- Программисты, знающие язык С, помогите.
- задача по ассемблеру.помогите!
- Меня зовут Влад и мне 16, вижу себя программистом в будущем помогите пожалуйста, дайте совет, поддержите!
- АССЕМБЛЕР ПОМОГИТЕ! Задали на учебе пример на автомат. Помогите умоляю. Программа emu8086.
- Программисты, знающие язык С, помогите.
- Сколько языков программирования должен знать современный программист? у меня знакомый работает программистом знает