Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Проблема с программой


Автор: Aleks2215 4.10.2010, 19:36
Написал программу:
Код

.386
.model small
.stack 100h
.data
ttt db "natchalo dannyh"
A dw 1011b
B dw 11010111100b
sum dw ?
.code
start: mov ax,@data
mov ds,ax
xor ax,ax
mov ax,A
rol ax,3
mov dx,b
rol dx,3
SHRD dx,ax,2
mov sum,ax
int 21h
mov ax,4c00h
int 21h
end start

Суть ее в том, чтобы извлечь 5 битов числа A, начиная со второго и вставить их в число В, начиная с третьего бита. Для этого я используя команды rol и ror сдвинулбиты чисел для объединения, а затем с помощью shrd объединил и вывел результат в sum. программа скомпилировалась без ошибок, но при попытке проверить в дебагере пишет
No program loaded
Подскажите что не так?

Автор: Mikl_ 5.10.2010, 03:42
Aleks2215
можно проще
Код
.286
.model small
.stack 100h
.data
A dw 1011b
B dw 11010111100b
.code
start: mov ax,@data
mov ds,ax
mov ax,A
and ax,0000000001111100b;извлечь 5 битов числа A, начиная со второго
shl ax,1; сдвигаем влево на 1 бит число находящееся в АХ 14 бит станет 15-ым, 13-ый станет 14-ым и т.д.
and B,1111111100000111b;освобождаем место в числе В с 3-его по 7 бит
or B,ax;вставить в число В, начиная с третьего бита
mov ax,4c00h; конец программы
int 21h
end start
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)