Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Есептер.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
74.65 Кб
Скачать

МЕНЮ

1.A массивінің элементтері 0 және 1 сандары. Бұл массивті барлық бірлері массивтің басында, ал соңында нөлдері тұратындай етіп сұрыптаңыз.

2. Кез-келген екі екілік оң бүтін сандарды қосу бағдарламасын жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз

3. Барлық орыс және латын әріптерін бас әріптерге ауыстыруға мүмкіндік беретін бағдарлама жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

4. Енгізілген жолды басып шығарушы бағдарлама жазыңыз, әр цифрды екі рет қайталау керек. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

5. Массив элементтерін көбейтуге мүмкіндік беретін бағдарлама жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

6. Жолдан әр бесінші символды жойып отыруға мүмкіндік беретін бағдарлама құрыңыз. Қорытындысын жаңа жолда сақтау қажет. Барлық орыс және латын әріптерін бас әріптерге ауыстыруға мүмкіндік беретін бағдарлама жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

7. Жолдан әр үшінші символды жойып отыруға мүмкіндік беретін бағдарлама құрыңыз. Қорытындысын жаңа жолда сақтау қажет.

8. Кез-келген ондық оң бүтін сандарды азайту бағдарламасын жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

9. Жолдан әр төртінші символды жойып отыруға мүмкіндік беретін бағдарлама құрыңыз. Қорытындысын жаңа жолда сақтау қажет.

10. Бүтін санды А массиві берілген. Олардың ішінен ең кіші болатын екі элементтерді табу керек. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

11. Массив элементтерін қосуға мүмкіндік беретін бағдарлама жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

12. Енгізілген екілік сандар бойынша нөлдер қай санау жүйесінде жазылғандығын анықтайтын бағдарлама жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз

13. Бүтін санды А массиві берілген. Олардың ішінен ең үлкен і элементті табу керек. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

14. A массивінің элементтері 0 және 1 сандары. Бұл массивті барлық нөлдері массивтің басында, ал бірлері соңында тұратындай етіп сұрыптаңыз.

15. n және k  натурал сандары берілген. n  санының оң жақтағы k–шы цифрын анықтаңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз

16. Кез-келген екілік оң бүтін сандарды азайту бағдарламасын жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

17. Кез-келген екі ондық оң бүтін сандарды көбейту бағдарламасын жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

18. Кез-келген екі екілік оң бүтін сандарды қалдығын  шығара отырып, бөлу бағдарламасын жазыңыздар. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

19. Бүтін санды А массиві берілген. Олардың ішінен ең кіші болатын екі элементтерді табу керек. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

20. Кез-келген екі ондық оң бүтін сандарды қалдығын  шығара отырып, бөлу бағдарламасын жазыңыздар. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

21. Енгізілген жол таңбасыз бүтін он алтылық санның дұрыс жазылған ба екендігін анықтайтын бағдарлама жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

22. Бүтін санды А массиві берілген. Олардың ішінен ең үлкен болатын екі элементтерді табу керек. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

23.Екі кез-келген ондық оң бүтін сандарды қосу бағдарламасын жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

24. Кез-келген екі екілік оң бүтін сандарды көбейту бағдарламасын жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

25. Бүтін санды А массиві берілген. Олардың ішінен айырымы ең үлкеніне тең болатын екі элементтерді табу керек. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

1.A массивінің элементтері 0 және 1 сандары. Бұл массивті барлық бірлері массивтің басында, ал соңында нөлдері тұратындай етіп сұрыптаңыз.

data segment

A dw 1, 1, 0, 0, 1, 0, 1, 0, 1, 1

A_len equ ($ - A) / 2

ends

stack segment

dw 128 dup(0)

ends

code segment

start:

mov ax, @data

movds, ax ;сегменттік деректердің инициализациясы

mov es, ax

mov cx, A_len ;ұзындығы

mov si, offset A ;адрес

mov di, si

mov ax, si

call print_array ;массивті шығару

xor ax, ax

mov bx, cx ;ұзындықты сақтау

CheckItem:

scasw ;0 - [di]

sbbbx, 0 ;егербұл санннан 1 шегеріледі

loop CheckItem

mov cx, bx ;bx–нолдік сан

xor ax, ax ;толықтыру символы

mov di, si ;нолдік сан

rep stosw ;толықтыру

mov ax, 1

mov cx, A_len

sub cx, bx

rep stosw

mov cx, A_len

mov ax, offset A

call print_array ;распечатать массив после изменений

mov ax, 4c00h

int 21h ;завершение программы

ends

;консольга дейін шығару

;Енгізу:

; o AX - адрес массив

; o CX –элемент саны

print_array proc near

pusha

mov si, ax

mov dl, ' '

PrintNextItem:

lodsw

call print_dec ;элементті шығару

mov ah, 2h

int 21h

loop PrintNextItem

mov dl, 0Ah

int 21h

mov dl, 0Dh

int 21h ;жолдарын ауыстыру

popa

ret

print_array endp

;Ондық жүйедегі санды енгізу

;Енгізу:

; o AX - сан

print_dec proc near

pusha ;стекке регистрді сақтау

mov cx, 10

mov bx, sp ; стекке жоғарыдағы регистрді сақтау

NextDiv:

xor dx, dx

div cx ;санды 10 ға бөлу

or dl, 30h ;санды asciiкодына ауыстыру

push dx ;стекке алынған сандарды сақтау

test ax, ax ;если результат деления не ноль -

jne NextDiv ;то продолжать деление

mov ah, 02h ;функция печати символа

;достаем цифры со стека в обратном порядке

NextDig:

pop dx ;достать очередное число

int 21h ;распечатать

cmp bx, sp ;это последнее число, положенное в стек?

jne NextDig ;если нет - продолжить печать

popa

ret

print_dec endp

end start

2. Кез-келген екі екілік оң бүтін сандарды қосу бағдарламасын жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз

.model tiny .code org 100h start: call scanToBuffer call translateFromSymToNum push ax call scanToBuffer call translateFromSymToNum xor si,si mov si,ax pop ax push ax mov ah,9 mov dx,offset message2 int 21h pop ax ; қосудыжүзегеасыру add ax,si OutBin proc mov bx,ax mov cx,16 ob1: shl bx,1 jc ob2 mov dl,'0' jmp ob3 ob2: mov dl,'1' ob3: mov ah,2 int 21h loop ob1 OutBin endp ret scanToBuffer: ; пернетақтадансандардыенгізу mov dx,offset message1 mov ah,9 int 21h mov dx,offset buffer mov ah,0Ah int 21h mov dx,offset crlf mov ah,9 int 21h ret translateFromSymToNum: ; ASCII-форматтағысандыбуферденАХ–тегібинарлысанғаауыстыру xor di,di xor ax,ax mov cl,blength xor ch,ch xor bx,bx mov si,cx mov cl,10 xor bp,bp cloop1: mov bl,byte ptr bcontents[di] cmp bl,'-' jnz dalee1 mov bp,1 jmp short dalee2 dalee1: sub bl,'0' jb mes_error cmp bl,9 ja mes_error mul cx add ax,bx dalee2: inc di cmp di,si jb cloop1 cmp bp,1 jnz dalee3 call reverse1 dalee3: ret reverse1: not ax add ax,1 ret printFromAX: ; АХрегистріненэкранғасандышығару push ax mov si,ax and si,8000h cmp si,0 jz dalee4 call reverse2 dalee4: mov si,10 mov di,0 cloop2: xor dx,dx div si push dx inc di cmp ax,0 ja cloop2 mov cx,di cloop3: pop dx add dl,'0' mov ah,2 int 21h loop cloop3 pop ax ret reverse2: push ax push dx mov dl,'-' mov ah,2 int 21h pop dx pop ax call reverse1 ret mes_error: mov dx,offset err_msg mov ah,9 int 21h ret message1 db 'Enter decimal number: $' message2 db 'Result is: $' err_msg db 'Bad number entered' crlf db 0Dh,0Ah,'$' buffer db 6 blength db ? bcontents: end start

3. Барлық орыс және латын әріптерін бас әріптерге ауыстыруға мүмкіндік беретін бағдарлама жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын  регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.

.model tiny

.code

org 100h

start:

call scanToBuffer

xor di, di

xor bp, bp

xor cx, cx

mov cl, blength

xor bx, bx

mov si, offset StrRes

add si, cx

mov bl,'$'

mov [si],bl

dec si

cloop1:

mov bl, byte ptr bcontents[di]

mov [si], bl

inc di

dec si

cmp di, cx

jb cloop1

mov ah,9

mov dx,offset message2

int 21h

mov ah, 9

mov dx, offset StrRes

int 21h

ret

scanToBuffer:

; жолды енгізу

mov dx,offset message1

mov ah,9

int 21h

mov dx,offset buffer

mov ah,0Ah

int 21h

mov dx,offset crlf

mov ah,9

int 21h

ret

message1 db 'Enter string: $'

message2 db 'Result is: $'

crlf db 0Dh,0Ah,'$'

StrRes db 100h dup(?)

buffer db 20

blength db ?

bcontents:

end start

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]