![]() |
Цитата:
компилятор молчит Код: program task1; |
ребята выручайте!у меня практика! мне надо сдать 5 программ,пока дали одну( вот надо написать на ассемблере: написать программу выделения из исходной строки подстрок,символов,заданной длины с указанием номера позиции :miha: помогите пожалуйста! Добавлено через 5 минут 48 секунд подкиньте пожалуйста саму прогу,чето поисковик даёт платную дрянь:( |
думаю с низким уровнем тут туго |
Была подобная лаба, вот глянь. Образовать строку, повторив фрагмент исходной строки с за¬данной позиции данной длины требуемое число раз. Показать скрытый текст .386 .MODEL FLAT, STDCALL ; прототипы внешних процедур описываются директивой EXTERN, ; после знака @ указывается общая длина передаваемых параметров, ; после двоеточия указывается дистанция «ближняя» – NEAR EXTERN GetStdHandle@4:NEAR EXTERN WriteConsoleA@20:NEAR EXTERN CharToOemA@8:NEAR EXTERN ReadConsoleA@20:NEAR EXTERN ExitProcess@4:NEAR ; функция выхода из программы EXTERN lstrlenA@4:NEAR ; функция определения длины строки ; includelib user32.lib ; includelib kernel32.lib ; сегмент данных .DATA H_OUT DD ? ; дескриптор вывода (директива DD резервирует память ; объемом 32 бита (4 байта)) H_IN DD ? ; дескриптор ввода STRN1 DB "Введите строку: ",13,10,0 ; выводимая строка, STRN2 DB "Введите начальную позицию: ",13,10,0 ; выводимая строка, STRN3 DB "Введите длину сегмента: ",13,10,0 ; выводимая строка, STRN4 DB "Введите количество повторений: ",13,10,0 ; выводимая строка, ; управляющие символы: 13 – возврат каретки, 10 – переход на новую ; строку, 0 – конец строки (с использованием директивы DB ; резервируется массив байтов) LEN_BUF DW ? LEN DW ? IN_BUF DB 200 dup (?); буфер для вводимой строки OUT_BUF DB 200 dup (?); буфер для выводимой строки STR_TMP DB 20 dup (?); буфер для выводимой строки POS DD ? LENG DD ? COUNT DD ? ; сегмент кода .CODE START: ; метка точки входа ; перекодируем строку PUSH OFFSET STRN1 ; OFFSET – операция, возвращающая смещение PUSH OFFSET STRN1 CALL CharToOemA@8 PUSH OFFSET STRN2 ; OFFSET – операция, возвращающая смещение PUSH OFFSET STRN2 CALL CharToOemA@8 PUSH OFFSET STRN3 ; OFFSET – операция, возвращающая смещение PUSH OFFSET STRN3 CALL CharToOemA@8 PUSH OFFSET STRN4 ; OFFSET – операция, возвращающая смещение PUSH OFFSET STRN4 CALL CharToOemA@8 ; получить дескриптор ввода PUSH -10 CALL GetStdHandle@4 MOV H_IN, EAX ; получить дескриптор вывода PUSH -11 CALL GetStdHandle@4 MOV H_OUT, EAX ; определение длины строки PUSH OFFSET STRN1 ; в стек помещается указатель на строку CALL lstrlenA@4 ; длина в EAX ; вызов функции WriteConsoleA для вывода строки STRN PUSH 0 ; в стек помещается 5-й параметр PUSH OFFSET LEN ; 4-й параметр PUSH EAX ; 3-й параметр PUSH OFFSET STRN1 ; 2-й параметр PUSH H_OUT ; 1-й параметр CALL WriteConsoleA@20 ; ввод строки PUSH 0 ; в стек помещается 5-й параметр PUSH OFFSET LEN_BUF ; 4-й параметр PUSH 200 ; 3-й параметр PUSH OFFSET IN_BUF ; 2-й параметр PUSH H_IN ; 1-й параметр CALL ReadConsoleA@20 PUSH OFFSET STRN2 ; в стек помещается указатель на строку CALL lstrlenA@4 ; длина в EAX PUSH 0 ; в стек помещается 5-й параметр PUSH OFFSET LEN ; 4-й параметр PUSH EAX ; 3-й параметр PUSH OFFSET STRN2 ; 2-й параметр PUSH H_OUT ; 1-й параметр CALL WriteConsoleA@20 PUSH 0 ; в стек помещается 5-й параметр PUSH OFFSET LEN ; 4-й параметр PUSH 200 ; 3-й параметр PUSH OFFSET STR_TMP ; 2-й параметр PUSH H_IN ; 1-й параметр CALL ReadConsoleA@20 push offset POS push offset STR_TMP call _StrToINT@8 PUSH OFFSET STRN3 ; в стек помещается указатель на строку CALL lstrlenA@4 ; длина в EAX PUSH 0 ; в стек помещается 5-й параметр PUSH OFFSET LEN ; 4-й параметр PUSH EAX ; 3-й параметр PUSH OFFSET STRN3 ; 2-й параметр PUSH H_OUT ; 1-й параметр CALL WriteConsoleA@20 PUSH 0 ; в стек помещается 5-й параметр PUSH OFFSET LEN ; 4-й параметр PUSH 200 ; 3-й параметр PUSH OFFSET STR_TMP ; 2-й параметр PUSH H_IN ; 1-й параметр CALL ReadConsoleA@20 push offset LENG push offset STR_TMP call _StrToINT@8 PUSH OFFSET STRN4 ; в стек помещается указатель на строку CALL lstrlenA@4 ; длина в EAX PUSH 0 ; в стек помещается 5-й параметр PUSH OFFSET LEN ; 4-й параметр PUSH EAX ; 3-й параметр PUSH OFFSET STRN4 ; 2-й параметр PUSH H_OUT ; 1-й параметр CALL WriteConsoleA@20 PUSH 0 ; в стек помещается 5-й параметр PUSH OFFSET LEN ; 4-й параметр PUSH 200 ; 3-й параметр PUSH OFFSET STR_TMP ; 2-й параметр PUSH H_IN ; 1-й параметр CALL ReadConsoleA@20 push offset COUNT push offset STR_TMP call _StrToINT@8 ; проведение операций над строками push COUNT ; 5й параметр количество повторений push LENG ; 4й параметр длина сегмента push POS ; 3й параметр позиция сегмента push offset OUT_BUF ; 2й параметр указатель на примник push offset IN_BUF ; 1й параметр указатель на источник call _Ololo@20 ; вывод полученной строки PUSH OFFSET OUT_BUF ; в стек помещается указатель на строку CALL lstrlenA@4 ; длина в EAX ; вызов функции WriteConsoleA для вывода строки STRN PUSH 0 ; в стек помещается 5-й параметр PUSH OFFSET LEN ; 4-й параметр PUSH EAX ; 3-й параметр PUSH OFFSET OUT_BUF ; 2-й параметр PUSH H_OUT ; 1-й параметр CALL WriteConsoleA@20 ; небольшая задержка MOV ECX,01FFFFFFFH L1: LOOP L1 ; выход из программы PUSH 0 ; параметр: код выхода CALL ExitProcess@4 _StrToINT@8 proc ; перегонка строки в число push ebp mov ebp,esp mov esi,[ebp+8] mov edi,[ebp+12] push esi call lstrlenA@4 ; длина в EAX mov ecx, eax add esi, ecx mov ebx, 1 @p1loop: dec esi mov al,[esi] mov ah, 0 cmp al,10 je @p1next cmp al,0 je @p1next cmp al,13 je @p1next sub al,30h imul eax, ebx add [edi], eax imul ebx, 10 @p1next: loop @p1loop @p1end: pop ebp ret 8 _StrToINT@8 endp ; функция дублирования ; параметры ; указатель на строку от куда ; указатель на строку куда ; 4 байта позиция ; 4 байта длина ; 4 байта количество раз ; размер парметров 20байт _Ololo@20 proc push ebp mov ebp,esp mov esi,[ebp+8] mov edi,[ebp+12] mov eax,[ebp+16] add esi, eax dec esi mov eax, esi mov edx,[ebp+20] mov ebx,[ebp+24] ; загрузили все параметры @p0count_next: cmp ebx, 0 je @p0end dec ebx mov ecx, edx mov esi, eax @p0next: movsb loop @p0next jmp @p0count_next @p0end: pop ebp ret 20 _Ololo@20 endp END START |
Нужен ОЧЕНЬ толковый программист для совместного ОЧЕНЬ интересного проекта хип-хоп тематики (будущая популярность проекта, окупаемость, уверен превзойдет все ожидания) |
Цитата:
писать заставляют в этом говне |
Цитата:
|
Программеры паскаля, нужна помощь Короче на учебе задали такую хню "Создать программу для тестирования по следующему сценарию: для каждого вопроса: -выволится вопрос -принимается ответ -выводится сообщение о правильности ответа В конце подсчет баллов" Плиз, очень надо вчера бошку встрес, туплю ппц |
Завтра надо сдать уже:написать на asm или flat assembler 1)дана матрица.найти максимальный элемент св указанном столбце 2)даны 2 массива.Сформировать третий массив,в него занести все чётные числа из первого массива и все нечётные из второго. 3)Дан четырёхм значный номер года.определить номер года и столетия,например 1492 4)дан массив байтов,подсчитать колличество элементов равных трём КАРАУЛ!!!!очень надо,вы себе не представляете как! Добавлено через 3 дня 18 часов 15 минут :miha:я в шоке:(Добавлено через 4 дня 10 часов 25 минут ну будьте людьми:oДобавлено через 4 дня 12 часов 45 минут пожааалуйста:saint:Добавлено через 5 дней 20 часов 47 минут :mitchust: |
ребят, кто шарит помогите, тут дела на 3 минуты нужна функция на паскале, сравнивающая две даты дата представлена типом запись и хранятся в виде массива напишите код функции, если не впадлу, тут дела на пять минут, я просто путаюсь в переменных с типом запись, не знаю что куда:( Код: type date=record |
Цитата:
Код: type date=record |
Вложений: 1 есть кто шарит в юкозе?дали в колледже задание сделать сайт на юкозе!как сделать чтобы названия меню переносилось на след строку? смотрите скрин видите стоит многоточие,а мне нужно чтобы было полное название с переносом на след строку |
Цитата:
так просто всё:( |
пацаны кто в Си# разбирется, обьясните как между формами передавать значения. Чтобы если я менял значение переменной в одной форме, менялось и в другой:| |
Цитата:
хотя для разных задач используются разные методы очень удобно использовать датамодели опиши задачу свою |
Как мне помнится, в С# нет глобальных переменных..:| |
Что ты понимаеш под глобальными? Глобальными считаются любые свойства(переменные определённые вне методов) класса относитльно класса конечно |
Цитата:
Надо к примеру в Form1 в листбоксе выбрать значение и установить его для переменной i в Form2. |
ну по разному можно самый простой способ передать ссылку на переменную static i в Form2 в Form1 создай метод: public static int geti() { return i; } в Form2 объяви переменную: static int i = Form1.geti(); и из Form2 ты сможеш выполнять операции над переменной в обеих формах |
Цитата:
|
ассемблером балуется кто?:) |
уже добаловались!:D |
а мне снова курсач надо по нему писать:)и экзамен снова сдавать:) |
Цитата:
|
Цитата:
снова все осваивать:) |
Часовой пояс GMT +3, время: 11:01. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
vBulletin Optimisation provided by
vB Optimise (Pro) -
vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.