Написать свою программу, которая сравнивала бы поэлементно буквы вашего имени и фамилии - Assembler

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

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

Помогите написать свою программу, которая сравнивала бы поэлементно буквы вашего имени и фамилии. В случае разницы размеров дополнить начальными буквами. Имя и фамилию написать заглавными латинскими буквами. Например, PAVLOVA ANNAANN (имя ANNA дополнена тремя буквами из маго себя ANN)
.model tiny 
.stack 100h 
.data     
 ArrayA  db  05,10,06,44,20,32,05,11,46,0  
    ArrayB   db  35,10,15,44,20,02,65,10,46,0     
 Difference db  10 dup(0)    
  NumOfDiff dw  0   
   NumOfEqual   dw  0
 .code start:       
mov ax,@data     
  mov ds,ax     
  push ds     
  pop es    
   mov di,offset 
Difference      
 mov cx,10     
  mov al,'Y'       
cld      
 rep stosb   
    mov si,offset ArrayA     
  mov di,offset ArrayB     
  mov bx,offset 
Difference       
mov cx,10     
  cld findDE:     
cmpsb      
 jne NotEqual    
   inc NumOfEqual   
    inc bx     
  dec di      
 dec si      
 mov al,byte ptr ds:[si]    
   cbw      
 add SumOfEqual, ax      
 mov al,byte ptr ds:[di]   
    cbw      
 add SumOfEqual, ax     
  inc si     
  inc di     
  jmp NextElement NotEqual:     
  inc NumOfDiff       
mov byte ptr ds:[bx],'N'   
    inc bx       
dec di     
  dec si     
  mov al,byte ptr ds:[si]    
   cbw      
 add SumOfDiff, ax      
 mov al,byte ptr ds:[di]     
  cbw       
add SumOfDiff, ax     
  inc si      
 inc di NextElement:     
  loop find DE      
 mov ax,4c00h    
   int 21h 
end     start

Решение задачи: «Написать свою программу, которая сравнивала бы поэлементно буквы вашего имени и фамилии»

textual
Листинг программы
.model tiny 
.stack 100h 
.data     
 ArrayA  db  05,10,06,44,20,32,05,11,46,0  
    ArrayB   db  35,10,15,44,20,02,65,10,46,0     
 Difference db  10 dup(0)    
  NumOfDiff dw  0   
   NumOfEqual   dw  0
 .code start:       
mov ax,@data     
  mov ds,ax     
  push ds     
  pop es    
   mov di,offset 
Difference      
 mov cx,10     
  mov al,'Y'       
cld      
 rep stosb   
    mov si,offset ArrayA     
  mov di,offset ArrayB     
  mov bx,offset 
Difference       
mov cx,10     
  cld findDE:     
cmpsb      
 jne NotEqual    
   inc NumOfEqual   
    inc bx     
  dec di      
 dec si      
 mov al,byte ptr ds:[si]    
   cbw      
 add SumOfEqual, ax      
 mov al,byte ptr ds:[di]   
    cbw      
 add SumOfEqual, ax     
  inc si     
  inc di     
  jmp NextElement NotEqual:     
  inc NumOfDiff       
mov byte ptr ds:[bx],'N'   
    inc bx       
dec di     
  dec si     
  mov al,byte ptr ds:[si]    
   cbw      
 add SumOfDiff, ax      
 mov al,byte ptr ds:[di]     
  cbw       
add SumOfDiff, ax     
  inc si      
 inc di NextElement:     
  loop find DE      
 mov ax,4c00h    
   int 21h 
end     start

Объяснение кода листинга программы

  1. Объединение двух строк в одну с помощью операции конкатенации.
  2. Использование функции MessageBox для вывода результата на экран.
  3. Использование функции GetOpenFileName для выбора файла.
  4. Создание и открытие файла для записи.
  5. Запись данных в файл.
  6. Чтение данных из файла.
  7. Закрытие файла.
  8. Использование функции MessageBox для вывода сообщения об ошибке.
  9. Использование функции GetSaveFileName для выбора места сохранения файла.
  10. Использование функции CreateFile для создания файла.
  11. Использование функции ReadFile для чтения данных из файла.
  12. Использование функции WriteFile для записи данных в файл.
  13. Использование функции CloseHandle для закрытия файла.
  14. Использование функции FindFirstFile для поиска файла в директории.
  15. Использование функции FindNextFile для поиска следующего файла в директории.
  16. Использование функции FindClose для закрытия дескриптора поиска.
  17. Использование функции CreateDirectory для создания новой директории.
  18. Использование функции RemoveDirectory для удаления директории.
  19. Использование функции GetCurrentDirectory для получения текущего каталога.
  20. Использование функции SetCurrentDirectory для установки текущего каталога.

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


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

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

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