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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2009, 12:59   #11
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
По умолчанию

3. Выделить старший байт А и младший байт В и сложить их как два двоично-десятичных числа

Код:
.MODEL SMALL,C
.STACK 256
.DATA
A EQU 2438h
B EQU 1329h
C EQU -157
D EQU 100
.CODE
start:
mov A,AH 
mov B,BL
add AH,BL
DAA
проверьте, правильно написал?
blackbanny вне форума Ответить с цитированием
Старый 05.10.2009, 13:07   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
mov A,AH
mov B,BL
Операнды местами поменяй.
Только я не уверен что компиоятор это прохавает потому что 2438h
по размеру не влезет в AH
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.10.2009, 13:23   #13
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
По умолчанию

так короче получается:

Код:
mov AH,A 
mov BL,B
add AH,BL
DAA
а до скольки влезть может в AH?
blackbanny вне форума Ответить с цитированием
Старый 05.10.2009, 13:26   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а до скольки влезть может в AH?
В десятичной до 254 в шестнадцатиричной до FFH

Внимательно еще раз посмотри мой пример.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.10.2009, 13:32   #15
blackbanny
Форумчанин
 
Аватар для blackbanny
 
Регистрация: 02.10.2009
Сообщений: 104
По умолчанию

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


вот что у меня получилось:

Код:
.model tiny
.data
      a equ 2438h
      b equ 1329h
      c dw -157
      d dw 100
.code
	.startup
	mov ax,a
	and ax,0007h
	mov bx,a
	and bx,0700h
	mov cl,8
	shl ax,cl
	shr bx,cl
	or ax,bx

;2
mov cx,c
mov dx,d
or cx,dx
das

;3
mov ax,a
mov bx,b
add ah,bl
mov di,ax
daa

;4
mov ax,a
cwd
div d
xor dx,di
	.exit
end
только 4 пункт я не пойму можешь прокомментировать?

Последний раз редактировалось blackbanny; 05.10.2009 в 20:49.
blackbanny вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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