Cái này thì mình biết tí chút tại vì đang học mà. cái của mình là chương trình dịch ra .exe còn ra .com làm sao thì mình không biết vì thầy giáo bảo không cần học cái đó. Cái này mình đã test thử rồi chạy ngon. Giá như là Visual Basic thì nhanh quá. Bài làm:
.model small
.stack 100h
.data
msg1 db 'nhap vao mot ky tu so:$'
msg2 db 13,10,'$'
msg3 db 'ban da nhap sai!$'
a db ?
.code
main proc
mov ax,@data
mov ds,ax
;hien thi msg1
lap: mov ah,9
lea dx,msg1
int 21h
;nhap vao
mov ah,1
int 21h
mov a,al
;do ax co the bi thay doi do lenh xuong dong
;xuong dong_msg2
mov ah,9
lea dx,msg2
int 21h
;kiem tra
cmp a,30h
jl tb
cmp a,39h
jg tb
jmp thoat
;hien thi msg3
tb: mov ah,9
lea dx,msg3
int 21h
;xuong dong_msg2
lea dx,msg2
int 21h
jmp lap
;hien thi ky tu so
thoat:
mov ah,2
mov dl,a
int 21h
;tro ve dos
mov ah,4ch
int 21h
main endp
end main
[=========> Bổ sung bài viết <=========]
.model small
.stack 100h
.data
msg1 db 'nhap vao mot ky tu so va mot ky tu hoa thuong:$'
msg2 db 'nhap vao mot ky tu so $'
msg3 db 'nhap vao mot ky tu hoa thuong:$'
msg4 db 13,10,'$'
msg5 db 'ban da nhap sai!$'
a db ?
b db ?
.code
main proc
mov ax,@data
mov ds,ax
;hien thi msg1
mov ah,9
lea dx,msg1
int 21h
;xuong dong_msg4
mov ah,9
lea dx,msg4
int 21h
;nhap vao ky tu so
;hien thi msg2
lap1: mov ah,9
lea dx,msg2
int 21h
mov ah,1
int 21h
mov a,al
;do ax co the bi thay doi boi lenh xuong dong
;xuong dong_msg4
mov ah,9
lea dx,msg4
int 21h
cmp a,30h
jl tb1
cmp a,39h
jg tb1
jmp thoat1
;hien thi msg5
tb1: mov ah,9
lea dx,msg5
int 21h
;xuong dong_msg4
lea dx,msg4
int 21h
jmp lap1
;hien thi ky tu so
thoat1:
mov ah,2
mov dl,a
int 21h
;xuong dong_msg4
mov ah,9
lea dx,msg4
int 21h
;nhap vao ky tu hoa thuong
;hien thi msg3
lap2: mov ah,9
lea dx,msg3
int 21h
mov ah,1
int 21h
xor bx,bx
mov b,al
;do ax co the bi thay doi boi lenh xuong dong
;xuong dong_msg4
mov ah,9
lea dx,msg4
int 21h
;kiem tra
cmp b,61H
jl tb2
cmp b,7AH
jg tb2
jmp thoat2
;hien thi msg5
tb2: mov ah,9
lea dx,msg5
int 21h
;xuong dong_msg4
lea dx,msg4
int 21h
jmp lap2
;hien thi ky tu so
thoat2:
mov ah,2
mov dl,b
int 21h
;tro ve dos
mov ah,4ch
int 21h
main endp
end main
[=========> Bổ sung bài viết <=========]
bài 3 này thì quá dễ
.model small
.stack 100h
.data
msg1 db 'nhap so thu nhat: $'
msg2 db 13,10,'nhap so thu 2: $'
msg3 db 13,10,'so lon nhat trong 2 so la: $'
.code
main proc
mov ax,@data
mov ds,ax
;nhap so thu nhat
mov ah,9
lea dx,msg1
int 21h
;nhap vao
mov ah,1
int 21h
and al,0fh
xor cx,cx
mov cl,al
;nhap so thu hai
mov ah,9
lea dx,msg2
int 21h
;nhap vao
mov ah,1
int 21h
and al,0fh
xor bx,bx
mov bl,al
;hien thi so lon nhat
mov ah,9
lea dx,msg3
int 21h
;so sanh
cmp bl,cl
jg ht1 ;lon hon
jl ht2 ;nho hon
ht1: add bl,30h
mov ah,2
mov dl,bl
int 21h
jmp thoat
ht2: add cl,30h
mov ah,2
mov dl,cl
int 21h
thoat: ;tro ve dos
mov ah,4ch
int 21h
main endp
end main
[=========> Bổ sung bài viết <=========]
bài 4 thì tương tự như trên thay đổi máy dòng lệnh thôi
[=========> Bổ sung bài viết <=========]
bài 5 và 6 tương tự như nhau chỉ khác ở câu lệnh lặp là repeat .. until và while .. do
.model small
.stack 100h
.data
msg1 db 'nhap vao mot chu cai in thuong: $'
msg2 db 13,10,'chu in thuong tu a den $'
msg3 db 'la: $'
msg4 db 13,10,'$'
msg5 db ' $'
k db ?
.code
main proc
mov ax,@data
mov ds,ax
;hien thi msg1
mov ah,9
lea dx,msg1
int 21h
;nhap vao
mov ah,1
int 21h
mov k,al
xor bx,bx
mov bl,60h
;hien thi msg2 va msg3
mov ah,9
lea dx,msg2
int 21h
mov ah,2
mov dl,k
int 21h
mov ah,9
lea dx,msg3
int 21h
;xuong dong
lea dx,msg4
int 21h
lap: inc bl
mov ah,2
mov dl,bl
int 21h
mov ah,9
lea dx,msg5
int 21h
cmp bl,k
je thoi
jmp lap
thoi: ;tro ve dos
mov ah,4ch
int 21h
main endp
end main