Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ассемблер. Нужна скорая помощь!!!

15K
14 июня 2006 года
DaBagger
13 / / 25.05.2006
Привет всем!!!
Помогите написать прогу:
В ячейке длиной в слово находится положительное число. Создать массив байтов, в каждом из которых будет записана шестнадцатиричная цифра числа.
1.7K
14 июня 2006 года
alektrik
140 / / 16.01.2006
Вот... думаю что так... правда комментарии особо не старался писать
P.S. писал на TASM 5.1

Код:
model small

.stack 100h

.286

.data
  w dw 0ABCDh
  msg db '0000 - OTBET',13,'$'
  hex db '0123456789ABCDEF'
.code
start:
    mov ax,@data
    mov ds,ax ;ds=@data

    mov cx,w ;cx=w
    xor dx,dx ;dx=0
   
    mov bx,cx
    shr bh,4  ;терь в bh 'A' (10)
    shr bl,4  ;терь в bl 'C' (12)
    mov dl,bh ;записываем в dl, bh (dx=bh)
    xor bh,bh ;bx=bl
   
    ;конвертим в ASCII
    mov ah,hex[bx] ;тут думаю всё понятно
    mov bx,dx      ;dx=bx, t.k. dx нельзя использовать как индексатор
    mov al,hex[bx]

    ;пишем результ в строку msg
    mov msg[0],al
    mov msg[2],ah

    mov bx,cx
    and bx,0F0Fh ;bh='B', bl='D'

    mov dl,bh ;записываем в dl, bh (dx=bh)
    xor bh,bh ;bx=bl
   
    ;аналогично...
    mov ah,hex[bx]
    mov bx,dx
    mov al,hex[bx]

    mov msg[1],al
    mov msg[3],ah

    ;вывод на экран
    mov ah,9
    mov dx,offset msg
    int 21h

    ;ждем нажатия любой клавиши
    xor ax,ax
    int 16h
   
    ;выход
    mov ax,4c00h
    int 21h
end start
15K
16 июня 2006 года
DaBagger
13 / / 25.05.2006
Спасибо огромное!!! Правда я успел сам и написал ее раньше!!!
Но все равно респект!!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог