Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
me_shytka
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 11
1

Работа с командной строкой

08.06.2015, 22:00. Просмотров 309. Ответов 4
Метки нет (Все метки)

Собственно, необходимо считать данные из командной строки, убрать все буквы и выдать результат.
Assembler
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
.286
.model small
.stack 256h
.data 
s10 db 0Dh,0Ah,'$'
s0 db 'enter the string and press enter',0Dh,0Ah,'$'
s1 db 255,?,255 dup (?)
s2 db 255,255,255 dup ('$')
s3 db 'result:',0dh,0ah,'$'
s4 db 'press any key...',0dh,0ah,'$'
.code
start: 
 mov ax,@data
    mov ds,ax
    mov es,ax
    mov ax,3
    int 10h
xor cx,cx ;обнулить счетчик
mov cl,CS:[80h];длина строки c параметром
dec cl          ;пропустить пробел
mov si,82h  ;на параметры
lea di,path
cicle1:
mov al,cs:[si]
mov ds:[di],al
inc di
inc si
loop cicle1
 
path db 255,?,255 dup (?),0
 
mov s1,al
 
cld 
mov bx,offset s1   
mov cx,[bx+1]
lea si,s1+2      
lea di,s2
 
m1: lodsb
cmp al,'0'
jb no_n
cmp al,'9'
ja no_n
stosb
dec cl
cmp cl,0
jne m1
 
no_n:   
dec cl
cmp cl,0
jne m1
 
mov ax,3
    int 10h ;очистил экран
 
mov ah,9
    mov dx,offset s3          ;вывел строку s3 на экран 
    int 21h
        
    mov ah,9
    mov dx,offset s2          ;вывел строку s2 на экран 
    int 21h
 
 
mov ah,9
    mov dx,offset s10          ;вывел строку s4 на экран 
    int 21h
 
mov ah,9
    mov dx,offset s4          ;вывел строку s4 на экран 
    int 21h
 
    mov ah,0
    int 16h
 
 
    mov ah,4Ch
    int 21h
end
собственно, есть такой код. Что нужно подправить, чтобы он работал? заранее благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2015, 22:00
Ответы с готовыми решениями:

Работа со строкой в Ассемблере
Стоит такая задача: 1) Вводим произвольный текст 2) Если текст начинается...

Работа со строкой - помогите найти ошибку
Не могли бы помочь найти ошибку. В проге ввожу двоичное число без эха...

Работа со строкой из трех десятичных цифр)
Узнали ровно перед майскими что у нас вообще есть ассемблер, ошибка в...

Работа с командной строкой
Собственно, нужно считать параметры, введенные после имени программы в...

Работа с командной строкой в masm32
Чтобы узнать какие прописаны значения в командной строке нужно воспользоватся...

4
Constantin Cat
1961 / 1049 / 365
Регистрация: 28.02.2015
Сообщений: 2,326
Завершенные тесты: 1
08.06.2015, 22:34 2
Собственно CS - указывает на сегмент кода, остальные DS | ES на PSP, Вам нужно не загружать оба регистра, а оставить один из них, при этом используя его в тех моментах, где Вы используете CS читая командную строку.
0
Миниатюры
Работа с командной строкой  
me_shytka
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 11
09.06.2015, 01:42  [ТС] 3
то есть, мне просто убрать строчку
Assembler
1
mov ex,ax
в любом случае, у меня идет зацикливание еще в 1 цикле, при считывании. Не пойму, почему (вроде бы, доходим до конца и все, идем дальше...)

Добавлено через 2 часа 17 минут
ничего не понимаю, короче-все идет как надо, но, когда кончаются символы, идет дальше
0
Constantin Cat
1961 / 1049 / 365
Регистрация: 28.02.2015
Сообщений: 2,326
Завершенные тесты: 1
09.06.2015, 03:07 4
Читая ком.строку Вы должны учитывать, то чем она заканчиается.
0
me_shytka
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 11
09.06.2015, 08:51  [ТС] 5
даже если я задаю для cx 4, у меня после выполнения цикла все равно все уходит куда-то в дебри... Раньше у меня эта программа читала данные с клавиатуры и все работало на ура, а тут мучаюсь и не могу ничего понять. P.s. я ужасный профан и новичок, препод дала задание и не хочет объяснять, а по ее лечкам я точно ничего никогда не смогу сделать.
0
09.06.2015, 08:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 08:51

Работа со строкой
Masm32 есть строка. вывести ее на экран в обратном порядке. Помогите плз.

Работа со строкой
Дана строка, заканчивающаяся нулем. Определить длину строки(через программу...

Assembler, работа со строкой символов
Необходима небольшая помощь с Ассемблером. Написал программу, нужно немного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru