Сравнение массивов - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите пожалуйста с кодом. Делаю программу которая после ввода mkfile должна создавать файл и в нем текст. Засунул текст в m2 и пытался сравнить массивы m2 и cmd но безуспешно.
sseg        segment        stack        
        db      256 dup (?)
sseg        ends
dseg        segment                             
newfile     db  256 dup(0)
cmd     db  256 dup(0)
rootcat     db          'c:\',0  
d6      db     'Wrong command, try again $'
m2 db 'mkfile',0   
buf         db  256 dup(0)
c           db      0
error       db      'error$'
dseg        ends    
cseg    segment             
    assume  cs:cseg, ds:dseg, ss:sseg    
    getstr  proc    near            
    xor si,si
a1: mov ah,1
    int 21h
    cmp al,0dh
    je  a2
    mov buf[si],al
    inc si
    jmp a1  
a2: inc si
    mov buf[si],0
    ret
getstr  endp     
    getfln  proc    near            
    xor si,si
b1: mov ah,1
    int 21h
    cmp al,0dh
    je  b2
    mov newfile[si],al
    inc si
    jmp b1  
b2: inc si
    mov newfile[si],0
    ret
getfln  endp  
    getcmd  proc    near            
    xor si,si
d1: mov ah,1
    int 21h
    cmp al,0dh
    je  d2
    mov cmd[si],al
    inc si
    jmp d1  
d2: inc si
    mov cmd[si],0
    ;-----------------------------------------------------------------------
 
    ;-----------------------------------------------------------------------
    ret
getcmd  endp
start:  jmp main
main:   push    ds
    mov ax,0
    push    ax
    mov ax,dseg
    mov ds,ax
    call getcmd  
c1:     call getfln
        mov     dx,offset newfile   
        mov     cx,0    
        mov     ah,5bh
        int     21h
        jc      erop
        mov     bx,ax   
        call getstr     
        mov     dx,offset buf   
        mov     cx,si
        mov     ah,40h
        int     21h
        jc      erop
        mov     ah,3eh          
        int     21h
        jc      erop
mov          dx,offset rootcat               
 mov         ah,3bh
 int         21h
 jc      erop
exit:       mov     ax,4c00h        
        int     21h
erop:   mov     dx,offset error        
        mov     ah,9
        int     21h 
        jmp     exit 
NE:  
        mov    dx,offset d6
        mov    ah,9
        int    21h
        jmp start
    
cseg        ends
        end     start

Решение задачи: «Сравнение массивов»

textual
Листинг программы
;........................
   mov   di,buff
   call  getString
;........................
   mov   di,newfile
   call  getString
;........................
   mov   di,cmd
   call  getString

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы