Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2009, 10:06   #1
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
Восклицание ассемблер, не могу дописать...

1. Поменять местами 0-2 разряды младшего и старшего байтов в слова А
2. Сложить С и D в двоичном виде
3. Выделить старший байт А и младший байт В и сложить их как два двоично-десятичных числа
4. Разделить А на D и остаток от деления объединить по "исключающему ИЛИ" с результатом п.3


пункты 1 и 2 сделал вроде правильно, а вот 3 и 4 не могу, помогите...
начало проги:
Код:
.MODEL SMALL,C
.STACK 256
.DATA
A EQU 2438h
B EQU 1329h
C EQU -157
D EQU 100
.CODE
start:
;1
MOV AX,A
AND AX,0007H
MOV BX,A
AND BX,0700H
MOV CL,8
SHR BX,CL
SHL AX,CL
OR AX,BX
MOV DX,A
OR DX,AX

;2
MOV CX,C
MOV DX,D
OR CX,DX

Последний раз редактировалось Stilet; 05.10.2009 в 10:30.
blackbanny вне форума Ответить с цитированием
Старый 05.10.2009, 10:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как два двоично-десятичных числа
Чего чего??
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.10.2009, 10:17   #3
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
По умолчанию

в методичке так написано! А = 2438Н - двоично - десятичное число, я так понимаю, наверное в таком виде и нужно сложть...
blackbanny вне форума Ответить с цитированием
Старый 05.10.2009, 10:29   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в методичке так написано! А = 2438Н - двоично - десятичное число
Вас что там учат лучшие сыщики без диплома?
Это шестнадцатиричное представление.

Вот пример на МАСМе:
Код:
.data
;_______________
 txt dw 569
;_______________
.code
start:
 xor eax,eax
 mov bx, word ptr [txt]
 mov al,bl
 add al,bh
ret
Думаю подойдет. Смысл вроде сохранен.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.10.2009, 11:01   #5
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
По умолчанию

это ты написал решение 3 пункта? если можно, сделай пожалуйста с коментами и посмотри 1 и 2 пункт я правильно написал?
blackbanny вне форума Ответить с цитированием
Старый 05.10.2009, 11:26   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если можно, сделай пожалуйста с коментами
Ну это можно:
Код:
 
 mov bx, word ptr [txt] ;Пишем в регистр переменку
 mov al,bl ; выделяем младший байт
 add al,bh; К нему плюсуем старший
Цитата:
и посмотри 1 и 2 пункт я правильно написал?
А ты запусти и проверь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.10.2009, 11:32   #7
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
По умолчанию

а 4 пункт можешь решить?)
blackbanny вне форума Ответить с цитированием
Старый 05.10.2009, 11:38   #8
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Stilet, после сложения десятичных чисел нужно выполнять команду daa, правда в данном случае это не критично.

blackbanny
,
Код:
mov ax,A
cwd
div D
xor dx,tmp ; xor с тем, что получилось
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 05.10.2009 в 11:41.
Goodwin98 вне форума Ответить с цитированием
Старый 05.10.2009, 11:42   #9
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
Stilet, после сложения десятичных чисел нужно выполнять команду daa, правда в данном случае это не критично.

blackbanny
,
Код:
mov ax,A
cwd
div D
xor dx,tmp ; xor с тем, что получилось
это ты про какой пункт?
blackbanny вне форума Ответить с цитированием
Старый 05.10.2009, 12:37   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Stilet, после сложения десятичных чисел нужно выполнять команду daa,
Я не против. Я не спец в Асме.
Цитата:
это ты про какой пункт?
Про четвертый.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу всё никак не могу эту лабораторку сдать помогите плиз Dimon.ru Паскаль, Turbo Pascal, PascalABC.NET 2 16.06.2009 20:53
Помогите дописать программу на Delphi 7 не могу понять что здесь не так matrix8325 Помощь студентам 1 30.04.2009 23:34
C и ассемблер, не могу скомпилировать Olen' Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 19.02.2009 19:57
Дописать... Lemo Помощь студентам 14 14.10.2008 20:49
Помогите дописать ShnapS Паскаль, Turbo Pascal, PascalABC.NET 4 28.05.2008 21:08