![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 08.12.2010
Сообщений: 1
|
![]()
Помогите решить лабораторную: необходимо задать вводом с клавиатуры строки и числа N, а потом вывести на экран первые N символов введенной строки. Не могу ввести второй параметр (N). Если ограничивать количество символов константой, то все работает.... а вот ввод второго парамета? Помогите, пожалуйста!
Текст программы: ; Вводится текстовая строка и некоторое число N. Необходимо вывести первые N символов текстовой строки .model small .data stdin equ 0 stdout equ 1 a1 db 80 dup (0) len_a1 dw 0 info1 db 'Ведите строку: ' len1 equ $-info1 info2 db 'Вывод результата: ' len2 equ $-info2 info3 db 'Вввод числа: ' len3 equ $-info3 a2 db ' ' len_a2 equ $-a2 a3 db 80 dup(0) ;массив a5 dw 0 len_end dw 0 len_my dw 10 .code myp proc mov ax, @data ;аккумулятор eax/ax/ah/al (Accumulator register) mov ds, ax ;Сегмент данных mov es, ax ;шесть регистров сегментов: cs, ds, ss, es, fs, gs; ;Ввод строки mov ah, 40h mov BX, stdout mov cx, len1 mov dx, offset info1 ; напечатать строку int 21h mov ah, 3fh mov bx, stdin mov cx, 80 mov dx, offset a1 int 21h dec ax dec ax mov len_a1, ax ;Ввод числа mov ah, 40h mov BX, stdout mov cx, len3 mov dx, offset info3 ; напечатать строку int 21h mov ah, 3fh mov bx, stdin mov cx, 82 mov dx, offset a2 ;len_my int 21h mov len_my,7 cld ;сброс в ноль флага направления df ; Загрузка адресов строк lea si, a1 lea bx, a3 mov di, 0 ; mov bx, 7 Sload: lodsb mov [bx][di], al inc di mov dx,di cmp dx,len_my je Exit loop Sload job: Exit: ;Вывод результата mov ah, 40h mov BX, stdout mov CX, len2 mov dx, offset info2 int 21h lea di, a3 ;В отличие от offset команда lea допускает индексацию операнда, что позволяет более гибко организовать адресацию операндов mov ah, 40h mov BX, stdout mov dx, offset a3 int 21h mov ah, 40h mov BX, stdout mov dx, offset a2 int 21h mov ax, 4C00h int 21h myp endp .stack dw 32 dup(?) end myp Последний раз редактировалось olgasssssss; 08.12.2010 в 17:51. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод с клавиатуры два целых числа без знака и вывод на экран их сумму. | gelya_17 | Помощь студентам | 5 | 18.10.2010 10:31 |
Файловый Ввод-вывод и строки | coll3ctor | Общие вопросы C/C++ | 17 | 02.05.2010 11:02 |
Degree d^n, как организовать ввод\вывод? | sig_GB | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 15 | 21.04.2010 20:29 |
Ввод символьной строки,вывод содержимого соответствующего регистра(TASM) | adgam | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 17.03.2010 08:48 |
Ввод и вывод числа | Strogg | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 23.03.2009 17:44 |