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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2010, 21:27   #1
XOKS
Пользователь
 
Регистрация: 19.09.2010
Сообщений: 15
По умолчанию Сдвиг битов

есть задание : Дано 16 битное слово ..поменять местами 1 и 3 биты..


Как поменять эти биты..
используя команды shl и shr///
или как..помогите с кодом..
XOKS вне форума Ответить с цитированием
Старый 04.11.2010, 00:10   #2
Vergo
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 38
По умолчанию

Может так?

Код:
	#make_COM#
        ORG  100H  
      
	jmp start
	  
num     DW 1111111111110010b
	
start:
	mov ax, [num]
		
	ror ax, 1
	ror ax, 1
	
	pushf
	pop cx
	
	ror ax, 1
	ror ax, 1
	
	pushf
	push cx
	popf
	
	rcl ax, 1
	rol ax, 1
	
	popf
	
	rcl ax, 1
	rol ax, 1

	mov [num], ax

; Exit to operating system:
        MOV AH, 4Ch
        INT 21h
Vergo вне форума Ответить с цитированием
Старый 04.11.2010, 20:52   #3
XOKS
Пользователь
 
Регистрация: 19.09.2010
Сообщений: 15
По умолчанию

спасибо ..я проверю
XOKS вне форума Ответить с цитированием
Старый 04.11.2010, 23:31   #4
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

Код:
.386
.model flat,stdcall
option casemap:none

.code
start:
mov ax,0000000000000001b
push 3
mov ecx,[esp]
@@:
shr eax,1
rcr dl,1 
loop  @b
rcr dl,5
pop ecx
@@:
rcr dl,1
rcl eax,1
loop @b
ret
end start
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 08.11.2010, 13:44   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от XOKS
Дано 16 битное слово ..поменять местами 1 и 3 биты..
Код:
mov ax,X; в регистр АХ 16 битное слово
and al,1010b; проверяем 1-ый и 3-ий бит на равенство нулю
jz OK; оба бита нулевые -- ничего менять не нужно
cmp al,1010b; проверяем 1-ый и 3-ий бит на равенство единицам
jz OK; оба бита единичные -- ничего менять не нужно 
xor X,1010b; там где был единичный бит будет нулевой и наоборот
OK:
Mikl___ вне форума Ответить с цитированием
Старый 08.11.2010, 18:11   #6
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

Цитата:
Сообщение от Mikl___ Посмотреть сообщение
Код:
mov ax,X; в регистр АХ 16 битное слово
and al,1010b; проверяем 1-ый и 3-ий бит на равенство нулю
jz OK; оба бита нулевые -- ничего менять не нужно
cmp al,1010b; проверяем 1-ый и 3-ий бит на равенство единицам
jz OK; оба бита единичные -- ничего менять не нужно 
xor X,1010b; там где был единичный бит будет нулевой и наоборот
OK:
шыкарно.. !
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение битов в байте bondik Общие вопросы .NET 1 08.10.2010 22:02
Симметричное отображение битов Ra88 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 25.09.2010 07:07
добавление лишних битов jodam Общие вопросы C/C++ 6 13.05.2010 14:08
извлечение битов из байтов... WinApi Помощь студентам 4 10.11.2008 15:14
Перестановка битов. RegentM Общие вопросы Delphi 3 05.11.2007 17:23