Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zeus2090
ты не понял и рано радуешься...
это ссылка работ за деньги, причём в твоём случае, за _большие_ деньги...

Всего записей: 24117 | Зарегистр. 06-12-2002 | Отправлено: 23:27 17-12-2008
Zeus2090

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Я понял. просто говорю спасибо за время потраченное на меня. ))

Всего записей: 19 | Зарегистр. 17-12-2008 | Отправлено: 14:53 18-12-2008
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zeus2090
фигня...
если что по ходу -- спрашивай...
а на кого и где ты учишься, если такие курсовики там летают?

Всего записей: 24117 | Зарегистр. 06-12-2002 | Отправлено: 15:05 18-12-2008
Zeus2090

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
S

Всего записей: 19 | Зарегистр. 17-12-2008 | Отправлено: 18:29 18-12-2008 | Исправлено: Zeus2090, 18:03 21-12-2008
serj_nsk

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите вставить в эту базу данных сортировку по любому из атрибутов
до вторника желательно!! оч буду признателен
 
text segment 'code'
     assume cs:text, ds:data
stdout=1
stdin=0
CR=13
LF=10
 
myproc proc
mov AX, data
mov DS, AX
mov si,0
 
;устанавливаем цвет фона и символов
mov ah,06h
mov al,0
mov bh,20h
mov ch,0
mov cl,0
mov dh,24
mov dl,79
int 10h
 
mov ah,06h
mov al,0
mov bh,30h
mov ch,7
mov cl,0
mov dh,24
mov dl,79
int 10h
 
;вывод меню
mov ah,40h
mov bx,stdout
mov cx,fonlen
mov dx,offset fon
int 21h
 
mov ah,40h
mov bx,stdout
mov cx,menulen
mov dx,offset menu
int 21h
 
;открытие файла
mov AH, 3dh
mov al,2
mov CX, 0
mov DX, offset filename
int 21h
mov handle, AX
 
nn:
mov  ah,01
int 21h
;Выбор пункта меню нажатием соответствущей клавиши.  
;При нажатии 1-5 переход на соответствующую метку
cmp al,'1'
je cc
cmp al,'2'
je vvod
cmp al,'3'
je vivod
cmp al,'4'
je vv
cmp al,'5'
je exit1
call error
 
cc:
;создание файла
mov ah,06h
mov al,0
mov bh,30h
mov ch,7
mov cl,0
mov dh,24
mov dl,79
int 10h
 
mov ah,02h
mov bh,0
mov dh,6
mov dl,0
int 10h
 
mov AH, 3ch
mov CX, 0
mov DX, offset filename
int 21h
mov handle, AX
 
next:
call continuec
;вывод сообщения об ошибке, если нажата клавиша не из диапазона 1-5
error:
mov ah,06h
mov al,0
mov bh,30h
mov ch,7
mov cl,0
mov dh,24
mov dl,79
int 10h
 
mov ah,02h
mov bh,0
mov dh,6
mov dl,0
int 10h
 
;Вывод сообщения об ошибке
mov ah,40h
mov bx,stdout
mov cx,erlen
mov dx,offset er
int 21h
 
call continuec
 
vivod:
call vivod1
vv:
call vv1
exit1:
call exit
 
;добавление новой строки в конец файла  
vvod:
mov ah,06h
mov al,0
mov bh,30h
mov ch,7
mov cl,0
mov dh,24
mov dl,79
int 10h
 
mov ah,02h
mov bh,0
mov dh,6
mov dl,0
int 10h
 
;смещаем указатель на конец файла
mov ah,42h
mov al,2
mov bx,handle
mov cx,0
mov dx,0
int 21h
 
mov ah,40h
mov bx,stdout
mov cx,lennum
mov dx,offset nummes
int 21h
 
mov ah,3Fh
mov bx,stdin
mov cx,500
mov dx,offset buf1
int 21h
sub ax,2
mov actlen1,ax
 
;дописывание нулей в начало если длина номера меньше 3
mov cx,3
sub cx,ax
cmp cx,0
je next5
cicl4:
push cx
mov ah,40h
mov bx,handle
mov cx,1
mov dx,offset nul
int 21h
pop cx
loop cicl4
 
next5:
 
;Вывод номера строки на экран
mov ah,40h
mov bx,handle
mov cx,actlen1
mov dx,offset buf1
int 21h
 
;Вставка пробела
mov ah,40h
mov bx,handle
mov cx,1
mov dx,offset pr
int 21h
 
;Введения названия театра
mov ah,40h
mov bx,stdout
mov cx,namelen
mov dx,offset namep
int 21h
 
;ввод новой строки с клавиатуры  
mov ah,3Fh
mov bx,stdin
mov cx,500
mov dx,offset buf
int 21h
sub ax,2
mov actlen,ax
 
;записываем строку в файл без 2-х последних символов перехода на новую строчку
mov ah,40h
mov bx,handle
mov cx,actlen
mov dx,offset buf
int 21h
 
;дополняем строку пробелами, чтобы длина записи была равна 80  
mov cx,21
sub cx,actlen
sub cx,2
cicl1:
mov ah,40h
mov bx,handle
push cx
mov cx,1
mov dx,offset pr
int 21h
pop cx
loop cicl1
 
;Введение даты создания театра
mov ah,40h
mov bx,stdout
mov cx,datalen
mov dx,offset datap
int 21h
 
;ввод новой строки с клавиатуры  
mov ah,3Fh
mov bx,stdin
mov cx,500
mov dx,offset buf
int 21h
sub ax,2
mov actlen,ax
 
;записываем строку в файл без 2-х последних символов перехода на новую строчку
mov ah,40h
mov bx,handle
mov cx,actlen
mov dx,offset buf
int 21h
 
;дополняем строку пробелами, чтобы длина записи была равна 21  
mov cx,21
sub cx,actlen
sub cx,2
cicl11:
mov ah,40h
mov bx,handle
push cx
mov cx,1
mov dx,offset pr
int 21h
pop cx
loop cicl11
 
;Введение имени города
mov ah,40h
mov bx,stdout
mov cx,gorodlen
mov dx,offset gorod
int 21h
 
;ввод новой строки с клавиатуры  
mov ah,3Fh
mov bx,stdin
mov cx,500
mov dx,offset buf
int 21h
sub ax,2
mov actlen,ax
 
;записываем строку в файл без 2-х последних символов перехода на новую строчку
mov ah,40h
mov bx,handle
mov cx,actlen
mov dx,offset buf
int 21h
 
;дополняем строку пробелами, чтобы длина записи была равна 20  
mov cx,20
sub cx,actlen
sub cx,2
cicl12:
mov ah,40h
mov bx,handle
push cx
mov cx,1
mov dx,offset pr
int 21h
pop cx
loop cicl12
 
;Введение имени режиссера
mov ah,40h
mov bx,stdout
mov cx,rejlen
mov dx,offset rej
int 21h
 
;ввод новой строки с клавиатуры  
mov ah,3Fh
mov bx,stdin
mov cx,500
mov dx,offset buf
int 21h
sub ax,2
mov actlen,ax
 
;записываем строку в файл без 2-х последних символов перехода на новую строчку
mov ah,40h
mov bx,handle
mov cx,actlen
mov dx,offset buf
int 21h
 
;дополняем строку пробелами, чтобы длина записи была равна 20  
mov cx,20
sub cx,actlen
sub cx,2
cicl13:
mov ah,40h
mov bx,handle
push cx
mov cx,1
mov dx,offset pr
int 21h
pop cx
loop cicl13
 
;добавление символа перевода на следующую строку
mov ah,40h
mov bx,handle
mov cx,2
mov dx,offset en
int 21h
 
call continuec
;вывод всего содержимого файла
vivod1:
 
;очистка экрана
mov ah,06h
mov al,0
mov bh,30h
mov ch,7
mov cl,0
mov dh,24
mov dl,79
int 10h
 
;позиционирование курсора
mov ah,02h
mov bh,0
mov dh,6
mov dl,0
int 10h
 
mov ah,40h
mov bx,stdout
mov cx,2
mov dx,offset en
int 21h
 
;перевод указателя на начало файла
mov ah,42h
mov al,0
mov bx,handle
mov cx,0
mov dx,0
int 21h
 
;Считывание в buf содержимого файла
mov ah,3Fh
mov bx,handle
mov cx,1500
mov dx,offset buf2
int 21h
mov actlen2,ax
 
;Вывод buf на экран
mov ah,40h
mov bx,stdout
mov cx,actlen2
mov dx,offset buf2
int 21h
 
call continuec
 
;удаление строки
vv1:
mov ah,40h
mov bx,stdout
mov cx,delslen
mov dx,offset dels
int 21h
 
;Ввод номера удаляемой строки
mov ah,3fh
mov bx,stdin
mov cx,80
mov dx,offset buf3
int 21h
 
;Создание вспомогательного файла
mov AH, 3ch
mov CX, 0
mov DX, offset filename1
int 21h
mov handle1, AX
 
;Цикл сравнения строк в файле с удаляемой  
mov cx,30
mov di,0
 
cicl2:
;Сохраняем значение cx  
mov n,cx
 
;Смещение указателя на размер 1 записи(80)
mov ah,42h
mov al,0
mov bx,handle
mov cx,0
mov dx,di
int 21h
 
;Считывание файла  
mov ah,3fh
mov bx,handle
mov cx,80
mov dx,offset buf1
int 21h
mov actlen1,ax
add di,80
 
;Сравнение номера строк в цикле по 1 символу  
mov si,0
mov cx,3
cicl3:
mov bh,buf3[si]
mov bl,buf1[si]
cmp bh,bl
jne next3
inc si
loop cicl3
 
;Если  символы не совпадают то переходим на метку, не выводя строку во вспомагательный файл
call next2
next3:
 
;Вывод строки во вспомагательный файл
mov ah,40h
mov bx,handle1
mov cx,actlen1
mov dx,offset buf1
int 21h
 
next2:
 
;Восстановления количества повторений в цикле
mov cx,n
loop cicl2
 
;Закрытие исходного файла
mov ah,3eh
mov bx,handle
int 21h
 
;Закрытие вспомагательного файла
mov ah,3eh
mov bx,handle1
int 21h
 
;Удаление исходного файла
mov AH, 41h
mov CX, 0
mov DX, offset filename
int 21h
 
;Замена основного файла вспомагательным
push ds
pop es
mov ah,56h
mov dx,offset filename1
mov di,offset filename
int 21h
 
;Открытие основного файла
mov AH, 3dh
mov al,2
mov CX, 0
mov DX, offset filename
int 21h
mov handle, AX
 
;Закрашивание области на экране и изменения цвета символов
mov ah,06h
mov al,0
mov bh,30h
mov ch,7
mov cl,0
mov dh,24
mov dl,79
int 10h
 
;Позиционирования курсора
mov ah,02h
mov bh,0
mov dh,6
mov dl,0
int 10h
 
 
continuec:
mov ah,40h
mov bx,stdout
mov cx,2
mov dx,offset en
int 21h
 
jmp nn
 
exit:
;закрытие файла  
mov ah,3eh
mov bx,handle
int 21h
;выход из программы  
mov AX, 4C00h
int 21h
myproc endp
 
text ends
 
data segment
n dw 0
buf db 2000 dup (0)
actlen dw 0
buf1 db 2000 dup (0)
actlen1 dw 0
buf2 db 2000 dup (0)
actlen2 dw 0
buf3 db 2000 dup (0)
actlen3 dw 0
nul db '0'
fon db 'Teatri Rossii',CR,LF
fonlen equ $-fon
nummes db CR,LF,'Vvedite nomer stroki:',CR,LF
lennum equ $-nummes
menu db '1.Sozdat new fail',CR,LF,'2.Vstavit stroku',CR,LF,'3.Vivesti dannie na ekran',CR,LF,'4.Udalit stroku',CR,LF,'5.Exit',CR,LF,'Viberite menu, najav klavishi 1-5:',CR,LF
menulen equ $-menu
er db CR,LF,'Oshibka vvoda. Povtorite popitku:',CR,LF
erlen equ $-er
namep db CR,LF,'Vvedite nazvanie teatra:',CR,LF
namelen equ $-namep
datap db CR,LF,'Vvedite datu sozdaniya:',CR,LF
datalen equ $-datap
gorod db CR,LF,'Vvedite gorod:',CR,LF
gorodlen equ $-gorod
rej db CR,LF,'Vvedite imya glavnogo rejissera:',CR,LF
rejlen equ $-rej
en db CR,LF
namen db ?
dels db CR,LF,'Vvedite nomer stroki, dlya udaleniya',CR,LF
delslen equ $-dels
handle dw ?
handle1 dw ?
filename db 'teatri.txt',0
filename1 db 'teatri.in',0
pr db ' '
mas dw 100 dup(0)
data ends
 
stack1 segment para stack 'stack'
    db 128 dup (?)
stack1 ends
end myproc

Всего записей: 1 | Зарегистр. 21-12-2008 | Отправлено: 13:25 21-12-2008
Meradone

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хех может кто-нибудь поможет с алгоритмом вычисления обратной матрицы??? Нужен только сам процесс преобразования.
 
Добавлено:
Или такой вопрос... Дето тут вроде читал пишут что можно с Си на асм перегнать прогу...
Возможно ли это или нет???????????????

Всего записей: 6 | Зарегистр. 09-12-2008 | Отправлено: 14:55 21-12-2008
serqei35

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет! Есликого книги по программированию интересуют, скачать можно здесь:
http://webprogrammer.wallst.ru/programming.html

Всего записей: 11 | Зарегистр. 05-12-2008 | Отправлено: 18:07 21-12-2008
Santilos

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, помогите решить задачу: требуется вывести из сегмента стека заданное количество байт в шестнадцатеричном виде. Я в ассемблере лошара полный. Подправьте, пожалуйста, код. Вот мой кривой исходник
 
.model small
.stack 100h
.data
text db 'vvedite colitchestvo bait'
.code
    mov ax,@data              
    mov ds,ax
    mov dx, offset text
mov ah, 9h
int 21h
mov ah, 8h                
    int 21h                    
    cmp al, 0dh                
    jne f1        
    mov si,0               ;установка значения 0 в инд рег
f1:    mov dl,ss:[si]         ;помещаем первый байт сегмента кода в рег dl
 
 
    mov bl,dl              ;поместить значение рег dl  
    mov cx,2               ;установка рег сх значение 2
    push bx                ;положить значение рег bx в стек
    
    shr bl,4                ;сдвиг рег bx на 4 рзряда
srav:
    cmp bl,9               ;сравнить рег bl c 9
    jle cifra              ;если меньше то переход на метку  
    add bl,37h             ; ИНАЧЕ прибавить 55
    mov ah,2               ;поместить в рег ah счисло 2
    mov dl,bl              ;поместить в рег  
    int 21h                ;вызов 21 прерывания
    jmp two                ;переход на метку
cifra:
    add bl,30h             ;прибавить к рег bl 48
    mov ah,2               ;поместить в рег ah число 2
    mov dl,bl              ;поместить в рег dl значение рег bl
    int 21h                ;вызов 21 прерывания  
 
two:
    pop bx                 ;взять значение из стека и поместить в рег bx
    and bl,0fh             ; обнуление 4 битов рег bl
    loop srav              ;переход по метке
    inc si                 ;увеличить si на 1
      
    cmp si,15              ;сравнить рег si c 15
        jne f1                    ; если меньше или равно переход на метку
 
        mov ah,08h            ;ожидание нажатия клавиши
        int 21h
    mov ah,4ch            ;завершение программы
    int 21h
end                           ;конец

Всего записей: 1 | Зарегистр. 23-12-2008 | Отправлено: 20:12 23-12-2008 | Исправлено: Santilos, 20:16 23-12-2008
amnick

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 Дето тут вроде читал пишут что можно с Си на асм перегнать прогу...  
Возможно ли это или нет???????????????

Если используется Visual Studio, то в настройках компилятора поставьте генерацию ассемблерного листинга - будет вам "перегон с Си на асм". В общем случае - компилируете и дизассемблируете или смотрите в отладчике дизассемблированный код.

Всего записей: 130 | Зарегистр. 16-12-2001 | Отправлено: 19:56 30-12-2008
xNecrosx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть прога(текст ниже)...Она издает гудок при нажатии каждой 2 кропки,необходимо чтобы при нажатии каждой 2 клавиши она издавала щелчек.Подскажите где подправить и что
Подробнее...

Всего записей: 39 | Зарегистр. 07-06-2008 | Отправлено: 03:29 02-01-2009 | Исправлено: xNecrosx, 04:28 02-01-2009
eGorZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Santilos, xNecrosx
листинги прячем под тегом more, пример ниже - нажмите "Редактировать" в моём посте для просмотра
это твой листинг

Всего записей: 6865 | Зарегистр. 21-10-2003 | Отправлено: 03:57 02-01-2009 | Исправлено: eGorZ, 04:02 02-01-2009
gloom



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Есть прога(текст ниже)...Она издает гудок при нажатии каждой 2 кропки,необходимо чтобы при нажатии каждой 2 клавиши она издавала щелчек.Подскажите где подправить и что

Во-первых найди звук щелчка, т.к. его нет в стандартных звуках и кинь рядом с исходником (обзови напимер sound.wav).
Создай файл rsrc.rc и положи его там же.
Напиши в нем:
SWave        WAVE        sound.wav
 
Добавь в своем исходнике к подключаемым библиотекам строку:
includelib c:\masm32\lib\winmm.lib
А к инициализации переменных:
WaveS                db "SWave",0
 
Затем вместо:

Код:
 
push MB_OK  
push offset sTitle  
push offset sMsg  
push 0  
call MessageBeep ;возпроизводит звук если messagebox то выводит окно
 

 
Напиши:

Код:
 
push    40005h             ;SND_RESOURCE+SND_ASYNC
push    hInstance
push    OFFSET WaveS
call    PlaySoundA
 

 
Скомпилируй ресурс-файл и прилинкуй вместе объектником.
rc.exe /v rsrc.rc
cvtres.exe /machine:ix86 rsrc.res

Всего записей: 160 | Зарегистр. 16-11-2003 | Отправлено: 05:07 02-01-2009
student09

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые гуру ассемблера, помогите студенту нубу пожалуйста, дали задачку, а сам полный лох в этом
Пользователь вводит два числа А и В в десятичном виде через процедуру, осуществляя передачу результата ввода через стек. Программа должна:  
1. Посчитать С=А/2+В. Выполнить арифметический сдвиг С на 3 бит влево. Расчет должен быть выполнен с использованием макроопределения.
2. Вывести на экран число С и все промежуточные числа в двоичном виде, с использованием макроопределения.
 
и с Рождеством всех!

Всего записей: 1 | Зарегистр. 07-01-2009 | Отправлено: 21:12 07-01-2009
dave101ua1111

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вопрос,
есть код
 
    mov ah,02h
        mov dl,count[si]
    int 21h
 
если в count[si] ниходится цифра от 0 до 9 то нормально выводит на экран, а если больше 9 то выводит непонятно что, какой то ascii символ. получается ф-я 02h работает только с цифрами, а как вывести число тогда ?  
преобразовать число в строку и выводить ее через 09h ? если да то как преобразовывать ?

Всего записей: 12 | Зарегистр. 23-04-2007 | Отправлено: 19:05 08-01-2009
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dave101ua1111
проверяйте, похоже что у Вас в count[si] какие-то непечатные коды < 20h
пример...
 
Добавлено:
dave101ua1111

Цитата:
преобразовать число в строку и выводить ее через 09h ? если да то как преобразовывать ?  

Угу.  
А какое у Вас число (целое/вещественное/положительное/отрицательное)? И сколько байт?

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 13:00 09-01-2009 | Исправлено: SERGE_BLIZNUK, 13:02 09-01-2009
dave101ua1111

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK,
 
похоже что в count[si] то что должно быть, но не то что нужно мне.
программа делает следующее,  
вводим строку символов, а она выводит какой символь сколько раз в строке встречается.
листинг:
Подробнее...
 
изначально массив заполнен нулями
count db 256 DUP ('0')          
потом в цикле я беру каждый символ строки и увеличиваю значение нужного  элемента массива на 1 :

Код:
 
    lodsb ;читаем символ из DS:SI и уменьшаем SI на 1
 
...
         movzx bx,al
             dec bx
          
         inc byte[bx+count]
 
 

в результате если какой то символ встечается например 10 раз то на экран выводится символ двоеточие : (хекс код 3А) а в ACII таблице он идет как раз следом за цифрой 9(39h) .
пример выполнения проги:
Enter string:1111111111233
 
1->:
2->1
3->2
 
единица встречается 10 раз вот и вывело мне двоеточие )
 
как правильно решить это ?  

Всего записей: 12 | Зарегистр. 23-04-2007 | Отправлено: 19:03 09-01-2009
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dave101ua1111
 
1) измените задание исходного массива (не символ '0' - а просто ноль):
count db 256 DUP (0)          ;массив с количествами символов  
 
2) код между выдачей стрелки (arrow) и переводом на новую строку замените на код:
 

Код:
 
    push si
    push cx
    mov ah, 0h
    mov al,count[si]  
    mov bl,10           ; Divisor
    mov cx,sp           ; Remember stack location
 
NextDigit:
    div  bl      ; Divide, result stays in AL, remainder in AH
    mov  si,ax   ; save AX
     
    add ah,'0'
    mov dl,ah
     
    push dx  ; push one DIGIT to STACK
     
    mov ax,si   ; restore AX
    mov ah,0h
    test  ax,ax           ; Any more digits?
    jnz   NextDigit
     
showNumber:
    pop dx
    mov ah,02h
    int 21h  
    cmp cx,sp
    jne showNumber
   
    pop cx
    pop si
 

 
Наслаждайтесь!
p.s. наверняка можно сделать проще и красивее... но уж очень мне в 4 утра спать хочется...:-)

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 03:46 10-01-2009
eLENfOR

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте, помогите пожалуйста решить эту наисложнейшие задачки:
1) Организовать ввод строки символов.Из текста удалить слова,содержащие три буквы "о" .Результат вывести на экран;
2) Написать пр-му вывода строки с заданной позиции на экране по N символов в экранной строке :row-номер строки,col- номер столбца, N-кол-во символов в одной экранной строке

Всего записей: 2 | Зарегистр. 11-01-2009 | Отправлено: 19:07 12-01-2009
plasmoid



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите плиз написать программу, которая будет рекурсивно выводить содержимое всех попок диска, на котором находится.
Заранее спасибо всем откликнувшимся

Всего записей: 8 | Зарегистр. 13-11-2007 | Отправлено: 23:24 15-01-2009
crow134

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
здраствуйте, помогите решить задачу на ассемблере. постановка такая, что при помощи c# передается название тестового файла, в котором написаны названия других текстовых файлов, в которых нужно производить какие-либо изменения, например заменить букву a на b. с частью на c# справился, но не могу додуматься, как  заставить ассм открывать и сохранять изменения в текстовых файлах. буду очень  признателен даже за подсказку, в каком направлении двигаться.

Всего записей: 2 | Зарегистр. 13-01-2009 | Отправлено: 03:40 19-01-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru