4.2 Текст программы, реализующий данный алгоритм:
.model small
.586
.stack 100h
.data
Mes1 db "Input the first string",0ah,0dh,'$'
Mes2 db "Input the second string",0ah,0dh,'$'
Mes3 db "Input the simbol, from which you want to paste the second string",0ah,0dh,'$'
Str1 db 255
db?
db 255 dup (0)
Str2 db 255
db?
db 255 dup (0)
Char1 db 2
db?
db 0,'$'
Res db "Result is:",0Ah,0Dh,'$'
Str db 255 dup (0)
.code
include string.lib
.startup
mov ax,dgroup
mov ds,ax
cls
locate 0,0
lea dx, Mes1
mov ah,09h
int 21h
lea dx, Str1
mov ah,0ah
int 21h
locate 0, 3
lea dx, Mes2
mov ah,09h
int 21h
lea dx, Str2
mov ah,0ah
int 21h
locate 0, 6
lea dx, Mes3
mov ah,09h
int 21h
lea dx, Char1
mov ah,0ah
int 21h
obrabotka
locate 0, 9
lea dx, Res
mov ah,09h
int 21h
lea dx, Str
mov ah,09h
int 21h
.exit(0)
END
Листинг кода библиотеки math.lib, в которой находятся макросы, вызываемые в данной программе
|
|
IFDEF @Model
IFIDN @Model, <1>
TINYMODEL TYPEDEF
ENDIF
ENDIF
cls macro
push ax
push bx
push cx
push dx
mov cx,0
mov dh,24
mov dl,79
mov ah,6
mov al,0
mov bh,7
int 10h
pop dx
pop cx
pop bx
pop ax
endm
locate macro col,row
push dx
mov dh,row
mov dl,col
move_cursor
pop dx
endm
move_cursor macro
LOCAL ok,vs
push ax
push bx
cmp dh,24
jna ok
sub dh,dh
ok: cmp dl,79
jna vs
sub dl,dl
vs: mov ah,15
int 10h
mov ah,2
int 10h
pop bx
pop ax
endm
obrabotka macro
mov bp,offset Char1
add bp, 2
mov dl, ds:[bp]
mov bp,offset Str1
add bp, 1
mov cl, ds:[bp]
inc bp
mov si,offset Str2
add si, 1
mov ch, ds:[si]
inc si
mov bx, offset Str
inc bx
lp:
mov al,ds:[bp]
mov ds:[bx],al
cmp al,dl
je m1
inc bx
inc bp
dec cl
jnz lp
m1: inc bx
inc bp
lpo:
mov al,ds:[si]
mov ds:[bx],al
inc bx
inc si
dec ch
jnz lpo
lopa:
mov al,ds:[bp]
mov ds:[bx],al
inc bx
inc bp
dec cl
jnz lopa
inc bx
mov ds:[bx],'$'
endm
ВЫВОД
В данной работе были разработаны программы, направленные на выполнение арифметических действий и строковых операций.
Программы были написаны на языке низкого уровня Borland Turbo Assembler(TASM), для процессоров семейства Intel.
|
|
В ходе выполнения задания возникали проблемы во время отладки программы, поскольку язык ассемблера TASM имеет сложную структуру.
Были практически закреплены полученные навыки работы с TASM, знание о структуре языка и его синтаксиса.
Программы, разработанные в ходе выполнения данной расчетно-графической работы, характеризуются малым размером выполняемого файла, работай напрямую с аппаратным обеспечением ПК.