
- •1.A массивінің элементтері 0 және 1 сандары. Бұл массивті барлық бірлері массивтің басында, ал соңында нөлдері тұратындай етіп сұрыптаңыз.
- •4.Енгізілгенжолдыбасыпшығарушыбағдарламажазыңыз, әрцифрдыекіретқайталаукерек. Бағдарламаныңәрқадамыбойыншабағдарламаланатын регистрлердегіоперацияорындалубарысыжайындатүсініктемежазыңыз.
- •5.Массив элементтерін көбейтуге мүмкіндік беретін бағдарлама жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.
- •7.Жолдан әр үшінші символды жойып отыруға мүмкіндік беретін бағдарлама құрыңыз. Қорытындысын жаңа жолда сақтау қажет.
- •9.Жолдан әр төртінші символды жойып отыруға мүмкіндік беретін бағдарлама құрыңыз. Қорытындысын жаңа жолда сақтау қажет.
- •Int 21h ;распечатать
- •11. Массив элементтерін қосуға мүмкіндік беретін бағдарлама жазыңыз. Бағдарламаның әр қадамы бойынша бағдарламаланатын регистрлердегі операция орындалу барысы жайында түсініктеме жазыңыз.
- •Int 21h ;завершение программы
- •Int 21h ;распечатать
- •14.A массивінің элементтері 0 және 1 сандары. Бұл массивті барлық нөлдері массивтің басында, ал бірлері соңында тұратындай етіп сұрыптаңыз.
- •Int 21h ;распечатать
- •22.БүтінсандыАмассивіберілген. Олардыңішіненеңүлкенболатынекіэлементтердітабукерек. Бағдарламаныңәрқадамыбойыншабағдарламаланатын регистрлердегіоперацияорындалубарысыжайындатүсініктемежазыңыз.
- •Int 21h ;распечатать
- •Int 21h ;завершение программы
- •Int 21h ;распечатать
МЕНЮ
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