как поменять младшие байты со старшими? (assembler)

программирование assembler

.MODEL SMALL;
.STACK 400H;
.DATA;
tabd dd 32658287h, 0A316492Eh, 7B5D9317h
dd 0B48A2A3Bh, 3C68F125h, 5F2584F4h
dd 2E9513A5h, 65C8B18Bh, 3A7F4951h
.CODE;
beg: mov AX,@data;
mov DS,AX;
mov ax,word ptr tabd+2;
mov bx,word ptr tabd;
xchg al,bl;
mov ax,word ptr tabd+14;
mov bx,word ptr tabd+12;
xchg al,bl;
mov ax,word ptr tabd+30;
mov bx,word ptr tabd+28;
xchg ah,bh;
mov ax,word ptr tabd+34;
mov bx,word ptr tabd+32;
xchg ah,bh;

mov word ptr tabd+17,0;

mov ah,4ch;
mov al,00h;
int 21h;
end beg;

Поменять местами младшие байты первых элементов первой и второй строк и старшие байты второго и третьего элементов третьей строки.
Обнулить третьи байты элементов второй строки.

материал на самостоятельное изучение оставили, хотелось бы узнать у знатоков assembler-а: верно ли написана программа, и если верно то есть лучший вариант её написания.
Ответы:
Детально не вчитывался, сразу обнаружил ошибку: после xchg al,bl ты не сохраняешь содержимое обратно в память, а тут же затираешь. Посмотри пример тут: http://www.kolasc.net.ru/cdo/programmes/assembler/xchg.html


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.