|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.04.2011, 19:59 | #1 |
Новичок
Джуниор
Регистрация: 12.04.2011
Сообщений: 1
|
Необходимо подкорректировать программу на ассемблере!!!
Я новичок,и АССЕМБЛЕР изучал самостоятельно.Программа рассчитывает выражение и должна совершить вывод данных регистра АХ на экран в десятичной форме...
Скорее всего проблема с выводом т.к. этот фрагмент писал не я. Заранее СПАСИБО! .model small masm .stack 100h .data String db 5 dup (?),'$' ; Резервируем 5 байт для строки StringEnd = $-1 ; Указывает на символ '$' x db 1 a db 2 b db 3 c db 4 Fx dw 0 .data? A1 dw ? B1 dw ? C1 dw ? D1 dw ? x2 db ? x3 dw ? .code start: mov ax,@data mov ds,ax M1: xor bx,bx xor ax,ax mov al,[x] mul al mov [x2],al mul [x] mov [x3],ax xor ax,ax mov al,a cbw mul [x3] mov [A1],ax xor ax,ax mov al,b mul [x2] mov [B1],ax xor ax,ax mov al,a mul [x2] mov [C1],ax xor ax,ax mov al,a mul [x] mov [D1],ax mov ax,[A1] sub ax,[B1] add ax,4 ;AX=a-b+4 mov bx,[C1] add bx,[D1] sub bx,3 ;BX=c+d-3 div bx ;AX/BX=ax x dx add [Fx],ax inc [x] cmp [x],10 jle M1 std ; Устанавливаем ОБРАТНЫЙ порядок записи lea di,StringEnd-1 ; ES:DI = последний символ строки String mov ax,[Fx] mov cx,10 ; Задаемся делителем CX = 10 Repeat: xor dx,dx ; Обнуляем DX (для деления) div cx ; Делим DX:AX на CX (10), ; Получаем в AX частное, в DX остаток xchg ax,dx ; Меняем их местами (нас интересует остаток) add al,'0' ; Получаем в AL символ десятичной цифры stosb ; И записываем ее в строку xchg ax,dx ; Восстанавливаем AX (частное) or ax,ax ; Сравниваем AX с 0 jne Repeat ; Если не ноль, то повторяем ; Теперь осталось вывести строку на экран mov ah,9 lea dx,[di+1] ; Заносим в DX адрес начала строки int 21h ; Выводим ее на экран mov ax,4C00h int 21h end start |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
написать программу на ассемблере | tatach | Помощь студентам | 0 | 17.12.2010 20:03 |
Подкорректировать программу | wrmarw | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 04.05.2010 14:06 |
Можно ли подкорректировать программу, имея только ехе-шник? | dmitriy777 | Помощь студентам | 5 | 22.02.2010 11:52 |
Необходимо написать программу за $$$ | kkkron | Фриланс | 3 | 15.03.2009 13:22 |
необходимо сделать программу | Firefight | Фриланс | 8 | 12.09.2008 11:45 |