Проверить в заданном тексте баланс открывающихся и закрывающихся круглых скобок - Assembler
Формулировка задачи:
Помогите пожалуйста с написанием задачи на языке Assembler
Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок, т.е. верно ли, что можно установить взаимно однозначное соответствие открывающих и закрывающих скобок со следующими свойствами
a) открывающая скобка всегда предшествует соответствующей закрывающей.
b) первый и последний символы текста-пара соответствующих друг другу скобок.
Решение задачи: «Проверить в заданном тексте баланс открывающихся и закрывающихся круглых скобок»
textual
Листинг программы
model tiny strLen equ 200 .code org 100h begin: mov ah,9 lea dx,dbOut int 21h mov ah,0ah lea dx,dbIn int 21h mov ah,9 lea dx,dbRes1 int 21h xor cx,cx lea si,dbStr mov cl,dbLen push cx push si mov bp,sp @@00: lodsb cmp al,'(' jnz @@01 push ax @@01: cmp al,')' jnz @@02 pop bx cmp bl,'(' jnz @@04 @@02: loop @@00 lea dx,dbTrue cmp bp,sp jz @@04 @@03: lea dx,dbFalse @@04: mov ah,9 int 21h mov sp,bp mov ah,9 lea dx,dbRes2 int 21h pop si pop di dec di add di,si lea dx,dbTrue cmp byte ptr[si],'(' jnz @@05 cmp byte ptr[di],')' jz @@06 @@05: lea dx,dbFalse @@06: mov ah,9 int 21h xor ax,ax int 16h ret dbOut db 10,13,'Enter string:$' dbRes1 db 10,13,'Result 1:$' dbRes2 db 10,13,'Result 2:$' dbTrue db 10,13,'True$' dbFalse db 10,13,'False$' dbIn db strLen dbLen db ? dbStr db strLen dup(?) end begin