| Tác giả | Thông điệp |
---|
phoenix51706 Trụ Cột 09TC
Tổng số bài gửi : 94 Experience : 163 Danh Vọng : 4
| Tiêu đề: Bài tập hợp ngữ tuần 4 Fri Jan 21, 2011 11:46 pm | |
| Bài 1. Viết chương trình cho nhập 1 ký tự từ màn hình và xuất câu thông báo chào buổi sáng, buổi trưa hay buổi chiều tương ứng với ký tự nhậpvào là 'S', 's', 'T', 't', 'C', 'c'. - Code:
-
.model small .stack .data tb1 db " bay gio la (S)ang, (C)hieu hay (T)oi: $" tb2 DB 10, 13, "CHAO BUOI SANG$" tb3 DB 10, 13, "CHAO BUOI CHIEU$" tb4 DB 10, 13, "CHAO BUOI TOI$" .code mov ax, @data mov ds, ax mov ah, 9 ; xuat thong bao nhap mov dx, offset tb1 int 21h mov ah, 1 ; nhap vao ky tu int 21h cmp al, 'S' ; so sanh ky tu nhap je morning cmp al, 's' je morning cmp al, 'C' je afternoon cmp al, 'c' je afternoon cmp al, 'T' je night cmp al, 't' je night morning: mov ah, 9 mov dx, offset tb2 int 21h jmp exit afternoon: mov ah, 9 mov dx, offset tb3 int 21h jmp exit night: mov ah, 9 mov dx, offset tb4 int 21h jmp exit exit: mov ah, 4ch int 21h end
Bài 2. Viết chương trình cho phép nhập một ký tự từ bàn phím (dùng AH = 8h, int 21h). Nếu ký tự vừa nhập thuộc [0..9], [a..z], [A..Z], thì xuất ra màn hình ký tự đó và loại của ký tự đó (số, chữ thường, chữ hoa). - Code:
-
.model small .stack .data tb db "Nhap mot ky tu: $" tb1 db 10, 13, "ky tu vua nhap: $" tb2 db " la so.$" tb3 db " la chu hoa.$" tb4 db " la chu thuong.$" tb5 db " la ky tu dac biet.$" kt db ? .code mov ax, @data mov ds, ax mov ah, 9 mov dx, offset tb int 21h mov ah, 8 int 21h mov kt, al cmp al, '0' jb khac cmp al, '9' jnae so cmp al, 'A' jb khac cmp al, 'Z' jnae chuhoa cmp al, 'a' jb khac cmp al, 'z' jnae chuthuong so: mov ah, 9 mov dx, offset tb1 int 21h mov ah, 2 mov dl, kt int 21h mov ah, 9 mov dx, offset tb2 int 21h jmp thoat chuhoa: mov ah, 9 mov dx, offset tb1 int 21h mov ah, 2 mov dl, kt int 21h mov ah, 9 mov dx, offset tb3 int 21h jmp thoat chuthuong: mov ah, 9 mov dx, offset tb1 int 21h mov ah, 2 mov dl, kt int 21h mov ah, 9 mov dx, offset tb4 int 21h jmp thoat khac: mov ah, 9 mov dx, offset tb1 int 21h mov ah, 2 mov dl, kt int 21h mov ah, 9 mov dx, offset tb5 int 21h jmp thoat thoat: mov ah, 4ch int 21h end
|
| | | phoenix51706 Trụ Cột 09TC
Tổng số bài gửi : 94 Experience : 163 Danh Vọng : 4
| Tiêu đề: Re: Bài tập hợp ngữ tuần 4 Fri Jan 21, 2011 11:48 pm | |
| đợi mãi mà không có ai post bài 3 và bài 4 lên copy nộp gì hết, nên post 2 bài này lên giải khuây vậy. nghiên cứu hoài mà không ra bài 3. cùng nhau thảo luận nào anh em |
| | | playback Nhất Đại Công Thần
Tổng số bài gửi : 103 Experience : 125 Danh Vọng : 3
| Tiêu đề: Re: Bài tập hợp ngữ tuần 4 Sat Jan 22, 2011 11:28 pm | |
| nhung ji hoc tren lop chua du de lam bai 3 4 dau may thay thuc hanh dang di trc chuong trinh do. |
| | | nghthien Tri Phủ
Tổng số bài gửi : 61 Experience : 86 Danh Vọng : 4
| Tiêu đề: Re: Bài tập hợp ngữ tuần 4 Sun Jan 23, 2011 3:00 am | |
| Đây là bải 3 và bài 4 trong file pfd thực hành tuần 4. Trong forum em tưởng có người giải rồi nên không post lên. Hôm nay vô thấy chưa ai post nên giờ đưa lên cho mọi người tham khảo. Anh, chị nên chép hết code vào chương trình rồi chạy thử, như vậy dễ hình dung hơn. Xem code chay mỗi mắt lắm Có lỗi hay có gì không hiểu anh, chị post lên để em chỉnh lại Bài 3.Nhập vào 2 chuỗi s, đổi 2 chuỗi thành số, sau đó cộng hai số, in ra chuỗi và xuất chuỗi tổng. Ví dụ: S1 = "123" => N1 = 123 S2 = "456" => N2 = 456 N = N1 + N2 = 123 + 456 = 579 => S = "579" (xuất S ra màn hình) - Code:
-
.model small .stack .data mess1 db 'Nhap vao so thu nhat: $' mess2 db 13,10, 'Nhap vao so thu hai : $' messtong db 13,10, 'Tong 2 so vua nhap la: $' messloi db 13,10, 'Nhap sai!' messkt db 13,10, 'Nhan 1 phim bat ky de ket thuc ...$' s1 dw 0 s2 dw 0 .code ;xoa man hinh mov ax,3 int 10h mov dx, seg mess1 mov ds,dx ;thong bao nhap mov ah,9 lea dx,mess1 int 21h Nhapso1: mov ah,1 int 21h cmp al,13 ;kiem tra neu nhan phim enter thi thoat khoi vong nhap so 1 je ktso1 cmp al,30h jb nhapsai ;neu nho hon 30h thi ket thuc cmp al,39h ja nhapsai ;neu nho hon 39h thi ket thuc sub al,30h mov ah,0 ;xoa bit cao mov bx,ax mov ax,s1 mov cx,10 mul cx ;nhan al voi cl=10 add ax,bx ;cong ket qua vua nhan vao ax mov s1,ax ;gan s1 cho ax jmp Nhapso1 ktso1: cmp s1,0 je nhapsai
;thong bao nhap so 2 mov ah,9 lea dx,mess2 int 21h
Nhapso2: mov ah,1 int 21h cmp al,13 ;kiem tra neu nhan phim enter thi thoat khoi vong nhap so 2 je ktso2 cmp al,30h jb nhapsai ;neu nho hon 30h thi ket thuc cmp al,39h ja nhapsai ;neu nho hon 39h thi ket thuc sub al,30h mov ah,0 ;xoa bit cao mov bx,ax mov ax,s2 mov cx,10 mul cx ;nhan al voi cx=10 add ax,bx ;cong ket qua vua nhan vao ax mov s2,ax ;gan s2 cho ax jmp Nhapso2 ktso2: cmp s2,0 je nhapsai ;xu ly ;thong bao xuat tong mov ah,9 lea dx,messtong int 21h
mov ax,s1 ;gan al=s1 add ax,s2 ;cong al cho s2
mov bx,10 mov cx,0
tinh: mov dx,0 ;xoa bit cao div bx ;chia ax/bx thuong ve ax, so du ve dx push dx ;dua dx vao stack
inc cx ;tang cx de in trong vong lap cmp ax,0 ;so sanh ax = 0 thi ket thuc va bat dau in tong ja tinh
mov ah,2 intong: pop dx ;lay dx trong stack ra add dl,30h int 21h loop intong jmp kt nhapsai: mov ah,9 lea dx,messloi int 21h kt: mov ah,9 lea dx,messkt int 21h mov ah,1 int 21h mov ah,4ch int 21h end
Bài 4.Nhập 2 số nguyên dương A, B. Tính A/B, A*B (không dùng lệnh DIV, MUL) Ví dụ: A=18, B=3 Tính A/B: 18 - 3 - 3 - 3 - 3 - 3 - 3 = 0, vy A/B = 6 (tổng số lần A trừ B đến khi A=0). Tính A*B = 18 + 18 + 18 = 54 - Code:
-
.model small .stack .data mess1 db 'Nhap vao so nguyen A: $' mess2 db 13,10, 'Nhap vao so nguyen B: $' messn db 13,10, 'A*B= $' messc db 13,10, 'A/B= $' messloi db 13,10, 'Nhap sai!' messkt db 13,10, 'Nhan 1 phim de ket thuc ...$' s1 dw 0 s2 dw 0 .code ;xoa man hinh mov ax,3 int 10h mov dx,seg mess1 mov ds,dx ;in thong bao nhap mov ah,9 lea dx,mess1 int 21h Nhapso1: mov ah,1 int 21h cmp al,13 ;kiem tra neu nhan phim enter thi thoat khoi vong nhap so 1 je ktso1 cmp al,30h jb nhapsai ;neu nho hon 30h thi ket thuc cmp al,39h ja nhapsai ;neu nho hon 39h thi ket thuc
sub al,30h mov ah,0 ;xoa bit cao mov bx,ax mov ax,s1 mov cx,10 mul cx ;nhan al voi cl=10 add ax,bx ;cong ket qua vua nhan vao ax mov s1,ax ;gan s1 cho ax jmp Nhapso1 ktso1: cmp s1,0 je nhapsai ;thong bao nhap so 2 mov ah,9 lea dx,mess2 int 21h Nhapso2: mov ah,1 int 21h cmp al,13 ;kiem tra neu nhan phim enter thi thoat khoi vong nhap so 2 je ktso2 cmp al,30h jb nhapsai ;neu nho hon 30h thi ket thuc cmp al,39h ja nhapsai ;neu nho hon 39h thi ket thuc sub al,30h mov ah,0 ;xoa bit cao mov bx,ax mov ax,s2 mov cx,10 mul cx ;nhan al voi cx=10 add ax,bx ;cong ket qua vua nhan vao ax mov s2,ax ;gan s2 cho ax jmp Nhapso2 ktso2: cmp s2,0 je nhapsai ;xu ly ;thong bao a/b mov ah,9 lea dx,messc int 21h mov ax,s1 ;gan ax=s1 mov bx,0 chia: cmp ax,s2 ;neu ax < s2 thi thoat vong lap jb inchia ;cmp ax,0 ;je inchia inc bx sub ax,s2 ;ax=ax-s2 jmp chia inchia: mov ax,bx mov bx,10 mov cx,0 tinh: mov dx,0 ;xoa bit cao div bx ;chia ax/bx thuong ve ax, so du ve dx push dx ;dua dx vao stack
inc cx ;tang cx de in trong vong lap cmp ax,0 ;so sanh ax = 0 thi ket thuc va bat dau in ja tinh
mov ah,2 inso: pop dx ;lay dx trong stack ra add dl,30h int 21h loop inso cmp s2,0 je kt ;thong bao a*b mov ah,9 lea dx,messn int 21h mov ax,s1 mov cx,s2 dec cx nhan: add ax,s1 loop nhan mov s2,0 mov cx,0 jmp tinh
nhapsai: mov ah,9 lea dx,messloi int 21h kt: mov ah,9 lea dx,messkt int 21h mov ah,1 int 21h mov ah,4ch int 21h end
(Mấy biểu tượng nhìn dễ thương quá vọc tí) |
| | | buivanhieu Dân nhập cư - Chưa có hộ khẩu
Tổng số bài gửi : 2 Experience : 2 Danh Vọng : 0
| Tiêu đề: Re: Bài tập hợp ngữ tuần 4 Sun Jan 23, 2011 6:52 pm | |
| cam on dai ca Thien nhiu nha!!! |
| | | playback Nhất Đại Công Thần
Tổng số bài gửi : 103 Experience : 125 Danh Vọng : 3
| Tiêu đề: Re: Bài tập hợp ngữ tuần 4 Sun Jan 23, 2011 10:31 pm | |
| |
| | | Sponsored content
| Tiêu đề: Re: Bài tập hợp ngữ tuần 4 | |
| |
| | | |
Trang 1 trong tổng số 1 trang | |
| Permissions in this forum: | Bạn không có quyền trả lời bài viết
| |
| |
| |