Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2018, 18:37   #1
Ryslan Maxwell
Новичок
Джуниор
 
Регистрация: 12.01.2018
Сообщений: 1
По умолчанию Работа со строками FASM

Вот само полное задание что б понимать что ваще происходит:
Рассматривая S и T как символьные массивы (строки), решить следующую задачу:
проверить на равенство строки S и T при условии, что пробелы не учитываются, и записать ответ 1 (равны) или 0 в регистр AL.
S DB 200 DUP(?)
T DB 200 DUP(?)

Принципи я написал как бы но у меня вопрос по этому(код ниже):
Почему то в любом случа хоть равно хоть не равны строки оно всегда выполняет jnz notequal как сделать так что б она при том когда равна выполняла именно equal: а при неравных notequal:? Что я сделал тут не так?
И как как найти в этих строках пробелы и убрать их? я принципи понимаю как типо сдвиг но я не понимаю как это реализовать помогите
Код:
use16
org 100h
 
 
 
  cld 
  mov cx,T-S
  mov si,S
  mov di, T
repe cmpsb
   jnz notequal
   
   equal:
      mov AL,1
      int 21h
      
   notequal:
      mov AL,0
      int 21h
;----------------
S DB 200 DUP(?)
T DB 200 DUP(?)
Ryslan Maxwell вне форума Ответить с цитированием
Старый 13.01.2018, 00:16   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Ryslan Maxwell, работает-же твой код.
попробуй изменить текст, и получишь на экране ноль:
Код:
org 100h

  cld 
  mov  cx,T-S
  mov  si,S
  mov  di,T
  repe cmpsb
  jnz  notequal
   
equal:
  mov  AL,1
  jmp  exit

notequal:
  mov  AL,0

exit:
  add  al,'0'    ; вывод AL на экран
  int  29h
  mov  ah,8      ; пауза...
  int  21h
  ret            ; выход в дос!
;----------------
S DB 'Hello 12345678'
T DB 'Hello 12345678'
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler (FASM). Работа с массивом romanuss Помощь студентам 0 10.03.2017 00:32
Работа с консолью, fasm mtp2014 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 28.05.2015 20:56
Работа с матрицами (assembler FASM) Acito Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 12.03.2015 11:32
Работа с файлами. Assembler FASM Pinkibosh Помощь студентам 0 07.02.2014 12:50
Чем отличаеться fasm от fasm editor&? TotKtoNado Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 07.11.2011 17:00