Как запустить консольное приложение с моделью small? - Assembler

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

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

Мне нужно,что бы консолька запустилась,запросила пароль и далее вывела сообщение о его правильности или не правильности.
Листинг программы
  1. model small
  2. stack 256
  3. .data
  4. match db 0ah,0dh,'PASSWORD IS OK','$'
  5. failed db 0ah,0dh,'PASSWORD IS NOT CORRECT','$'
  6. string1 db 07Fh,071h,06Dh,067h,060h,07Bh,064h,'$'
  7. string2 db 10
  8. string db 'Input PASSWORD:','$'
  9. .code
  10. assume ds:@data,es:@data
  11. main:
  12. mov ax,@data
  13. mov ds,ax
  14. mov es,ax
  15. ;выводим приглашение ко вводу пароля
  16. mov ah,09h
  17. lea dx,string
  18. int 21h
  19. ;запрашиваем символы с клавиатуры
  20. lea dx,string2-2
  21. mov ah,0Ah
  22. int 21h
  23. ;производим расшифровку пароля
  24. mov si,0
  25. mov cx,7
  26. ll:
  27. xor string1[si],34h
  28. inc si
  29. loop ll
  30. ;процедура проверки правельности пароля
  31. cld
  32. lea si,string1
  33. lea di,string2
  34. mov cx,7
  35. cycl:
  36. repe cmps string1,string2
  37. jcxz equal ; если совподают
  38. jne not_match
  39. equal: ;если пароль верный
  40. mov ah,09h
  41. lea dx,match
  42. int 21h
  43. jmp exit
  44. not_match: ;если пароль не верный
  45. mov ah,09h
  46. lea dx,failed
  47. int 21h
  48. jmp exit
  49. jmp cycl
  50. exit:
  51. mov ax,4c00h
  52. int 21h
  53. end main

Решение задачи: «Как запустить консольное приложение с моделью small?»

textual
Листинг программы
  1. model small
  2. .386
  3.  
  4. .data
  5. match db 0ah,0dh,'PASSWORD IS OK$'
  6. failed db 0ah,0dh,'PASSWORD IS NOT CORRECT$'
  7. string1 db 7Fh,71h,6Dh,67h,60h,7Bh,64h
  8. passlen equ $-string1
  9. string2 db 10,0,10 dup(?)
  10. string db 'INPUT PASSWORD:$'
  11.  
  12. .stack
  13. db 256 dup(?)
  14.  
  15. .code
  16. main:
  17. mov ax,@data
  18. mov ds,ax
  19. mov es,ax
  20.  
  21. ;выводим приглашение ко вводу пароля
  22. mov ah,09h
  23. lea dx,string
  24. int 21h
  25.  
  26. ;запрашиваем символы с клавиатуры
  27. mov ah,0Ah
  28. lea dx,string2
  29. int 21h
  30.  
  31. ;производим расшифровку пароля
  32. mov si,0
  33. mov cx,7
  34. ll:
  35.     xor string1[si],34h
  36.     inc si
  37. loop ll
  38.  
  39. mov al,passlen
  40. cmp al,byte ptr [string2+1]
  41. jne not_match
  42.  
  43. ;процедура проверки правильности пароля
  44. cld
  45. lea si,string1
  46. lea di,string2+2
  47. mov cx,7
  48. repe cmpsb
  49. jcxz equal
  50. jne not_match
  51.  
  52. equal:
  53. mov ah,09h
  54. lea dx,match
  55. int 21h
  56.  
  57. jmp exit
  58.  
  59. not_match:
  60. mov ah,09h
  61. lea dx,failed
  62. int 21h
  63.  
  64. exit:
  65. mov ax,4C00h
  66. int 21h
  67. end main

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


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

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

9   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут