Как переделать комовский код для .exe - Assembler
Формулировка задачи:
Есть вот код для проги .com. Как его переделать, чтобы можно было скомпилить в тасме в .exe?
Листинг программы
- .model tiny
- .code
- org 100h
- .startup
- mov dx,offset urname ;запрос ввода имени
- mov ah,09h
- int 21h
- ;-----------------------
- mov dx, offset name1 ;запись строки в переменную name1
- mov ah,0ah
- int 21h
- ;-----------------------
- mov dx,offset ursuname ;запрос ввода фамилии
- mov ah,09h
- int 21h
- ;-----------------------
- mov dx, offset surname ;запись строки в переменную surname
- mov ah,0ah
- int 21h
- ;-----------------------
- mov dx,offset vivod ;здесь вывод всех введенных данных
- lea di,vivod + 8
- lea si,name1+2
- mov cl,[name1+1]
- xor ch,ch
- rep movsb
- mov al,' '
- mov cx,2
- rep stosb
- lea si,surname+2
- mov cl,[surname+1]
- xor ch,ch
- rep movsb
- mov byte ptr [di],'$'
- mov ah,09h
- int 21h
- ret
- urname db 13,10,'Enter your name $'
- ursuname db 13,10,'Enter your surname $'
- name1 db 255,255,255 dup ("$")
- surname db 255,255,255 dup ("$")
- vivod db 10,13,"Hello $"
- end
Решение задачи: «Как переделать комовский код для .exe»
textual
Листинг программы
- .model small
- .data
- urname db 13,10,'Enter your name $'
- ursuname db 13,10,'Enter your surname $'
- name1 db 255,255,255 dup ("$")
- surname db 255,255,255 dup ("$")
- vivod db 10,13,"Hello $"
- .stack
- db 255 dup(?)
- .code
- start:
- mov ax,@data
- mov ds,ax
- mov es,ax
- mov dx,offset urname
- mov ah,09h
- int 21h
- mov dx,offset name1
- mov ah,0Ah
- int 21h
- mov dx,offset ursuname
- mov ah,09h
- int 21h
- mov dx,offset surname
- mov ah,0Ah
- int 21h
- mov dx,offset vivod
- lea di,vivod+8
- lea si,name1+2
- mov cl,byte ptr [name1+1]
- xor ch,ch
- rep movsb
- mov al,' '
- mov cx,2
- rep stosb
- lea si,surname+2
- mov cl,byte ptr [surname+1]
- xor ch,ch
- rep movsb
- mov byte ptr [di],'$'
- mov ah,09h
- int 21h
- mov ah,4Ch
- mov al,00h
- int 21h
- end start
Объяснение кода листинга программы
В этом коде на языке Assembler происходит ввод имени и фамилии с помощью функции int 21h, а затем выводится приветствие, используя функцию int 21h, и после этого выводится сообщение об успешном завершении работы программы. Имя и фамилия сохраняются в соответствующих переменных, а затем выводится сообщение, используя функцию int 21h. В конце работы программы выводится сообщение об успешном завершении работы программы с помощью функции int 21h.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д