| HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! | |
| Tác giả | Thông điệp |
---|
trexanh078 Dân nhập cư - Chưa có hộ khẩu
Tổng số bài gửi : 8 Experience : 11 Danh Vọng : 0
| Tiêu đề: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Thu Mar 31, 2011 10:43 pm | |
| chao ban cac ban minh dang lam bai tap hop ngu cac ban giup minh bai tap nay voi hãy tạo một thanh menu 1.nhập vào một số hệ 2 2.nhập vào một số hệ 10 3.nhập vào một số hệ 16 4.xuất ra số hệ 2 5.xuất ra số hệ 10 6.xuất ra số hệ 16 ESC thoát minh dang rat can cam on ban nhieu
Được sửa bởi trexanh078 ngày Sat Apr 09, 2011 12:28 pm; sửa lần 1. |
| | | nghthien Tri Phủ
Tổng số bài gửi : 61 Experience : 86 Danh Vọng : 4
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Fri Apr 01, 2011 10:44 pm | |
| Đầy là bài, nhưng trong bài mình chỉ sử dụng mảng có 30 phần tử à. Nên khi nhập đến phần tử 30 thì chương trình sẽ ngắt và trả về menu - Code:
-
.model small .stack .data menu db 13,10, "MENU$" menu1 db 13,10, "1. Nhap vao so he 2$" menu2 db 13,10, "2. Nhap vao so he 10$" menu3 db 13,10, "3. Nhap vao so he 16$" menu4 db 13,10, "4. Xuat ra so he 2$" menu5 db 13,10, "5. Xuat ra so he 10$" menu6 db 13,10, "6. Xuat ra so he 16$" mess0 db 13,10, "Chon: $" mess1 db 13,10, "Nhap: $" mess2 db 13,10, "Xuat: $" messkt db 13,10, "Nhan 1 phim de ket thuc ...!$" he2 db 30 dup(0) ;khai bao mang co 30 phan tu he10 db 30 dup(0) he16 db 30 dup(0) .code ;dua doan du lieu vao ds mov dx,seg mess1 mov ds,dx ;in menu Inmenu: mov ah,9 lea dx,menu int 21h lea dx,menu1 int 21h lea dx,menu2 int 21h lea dx,menu3 int 21h lea dx,menu4 int 21h lea dx,menu5 int 21h lea dx,menu6 int 21h lea dx,mess0 int 21h ;nhap lenh mov ah,1 int 21h
cmp al,31h je tpNhaphe2 cmp al,32h je tpNhaphe10 cmp al,33h je tpNhaphe16 cmp al,34h je Xuathe2 cmp al,35h je Xuathe10 cmp al,36h je Xuathe16 cmp al,27 je kt jmp Inmenu
;thong bao nhap he 2 tpNhaphe2: mov ah,9 lea dx,mess1 int 21h mov si,0 mov ah,1 Nhaphe2: int 21h cmp al,13 je kthe2 cmp al,30h jb tpNhaphe2 cmp al,31h ja tpNhaphe2 mov he2[si],al inc si cmp si,30 je Inmenu jmp Nhaphe2 kthe2: cmp si,0 je tpNhaphe2 jmp Inmenu ;thong bao nhap he 10 tpNhaphe10: mov ah,9 lea dx,mess1 int 21h mov bh,0 mov di,0 mov ah,1 Nhaphe10: int 21h cmp al,13 je kthe10 cmp al,30h jb tpNhaphe10 cmp al,39h ja tpNhaphe10 mov he10[di],al inc di inc bh cmp bh,30 je Inmenu jmp Nhaphe10 kthe10: cmp bh,0 je tpNhaphe10 jmp Inmenu ;thong bao nhap he 16 tpNhaphe16: mov ah,9 lea dx,mess1 int 21h mov bl,0 mov di,0 mov ah,1 Nhaphe16: int 21h cmp al,13 je kthe16 cmp al,30h jb tpNhaphe16 cmp al,39h jna gan cmp al,41h jb tpNhaphe16 cmp al,46h jna gan cmp al,61h jb tpNhaphe16 cmp al,66h jna gan jmp tpNhaphe16 gan: mov he16[di],al inc di inc bl cmp bl,30 je Inmenu jmp Nhaphe16 kthe16: cmp bl,0 je tpNhaphe16 jmp Inmenu Xuathe2: mov ah,9 lea dx,mess2 int 21h xor cx,cx ;xoa bit cao cx mov cx,si mov di,0 jcxz Inmenu mov ah,2 Xuathe2loop: mov dl,he2[di] int 21h inc di loop Xuathe2loop jmp Inmenu Xuathe10: mov ah,9 lea dx,mess2 int 21h xor cx,cx ;xoa bit cao cx mov cl,bh mov di,0 jcxz Inmenu mov ah,2 Xuathe10loop: mov dl,he10[di] int 21h inc di loop Xuathe10loop jmp Inmenu Xuathe16: mov ah,9 lea dx,mess2 int 21h xor cx,cx ;xoa bit cao cx mov cl,bl mov di,0 jcxz Inmenu mov ah,2 Xuathe16loop: mov dl,he16[di] int 21h inc di loop Xuathe16loop jmp Inmenu kt: mov ah,9 lea dx,messkt int 21h mov ah,1 int 21h mov ah,4ch int 21h end
|
| | | trexanh078 Dân nhập cư - Chưa có hộ khẩu
Tổng số bài gửi : 8 Experience : 11 Danh Vọng : 0
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Sat Apr 09, 2011 12:28 pm | |
| thanks! bạn rất nhiều nhưng bạn ơi: hôm đó tại mình không viết do nên code của bạn gửi cho mình vẫn chưa đáp ứng đúng yêu cầu của đề bài bạn ạ. code của bạn hiện ra thanh menu như thế là đúng rồi nhưng ý của bài là nhập vào một số hệ 2 nhưng có thể xuất ra số hệ 2,10,16 và ngươc lại nhập vào một số hệ 10 nhưng có thể xuất ra số hệ 2,10,16 nhập vào một số hệ 16 nhưng có thể xuất ra số hệ 2,10,16 VD khi mình nhấn 1 thì hiện ra dòng: nhập vào số hệ 2 mình nhập vào một số ở hệ 2 vd như nhập vào số: 0101 sau đó mình . nhấn 4 thi hiện ra dòng: xuất ra số hệ 2: 0101 .nhấn 5 thì hiện ra dòng: xuất ra số hệ 10: 5 .nhấn 6 thì hiện ra dòng: xuất ra số hệ 16: 5 |
| | | tien doan Thảo dân 09TC
Tổng số bài gửi : 21 Experience : 23 Danh Vọng : 0
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Sun Apr 10, 2011 10:20 pm | |
| vẫn còn bàn nhau về hợp ngữ ah vì đã kết thúc môn học này rồi...trexanh078 nên vào trang môn học hỏi thầy xem sao |
| | | trexanh078 Dân nhập cư - Chưa có hộ khẩu
Tổng số bài gửi : 8 Experience : 11 Danh Vọng : 0
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Tue Apr 12, 2011 12:25 am | |
| mọi người giúp mình với cuối tuần mình phải nộp bài rồi |
| | | nghthien Tri Phủ
Tổng số bài gửi : 61 Experience : 86 Danh Vọng : 4
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Thu Apr 14, 2011 10:53 pm | |
| Đây là bài nhập số in ra theo menu của bạn trexanh078. Nhưng do hợp ngư giới hạn 16 bit, nên mình có bắt phần nhập của nhị phân không quá 16 ký tự, thập phân 5 ký tự(5 ký tự nhưng không nhập quá 65535), thập lục 4 ký tự. Còn nhập nhiều hơn thì pó tay. - Code:
-
.model small .stack .data menu db 13,10, "MENU$" menu1 db 13,10, "1. Nhap vao so he 2$" menu2 db 13,10, "2. Nhap vao so he 10$" menu3 db 13,10, "3. Nhap vao so he 16$" menu4 db 13,10, "4. Xuat ra so he 2$" menu5 db 13,10, "5. Xuat ra so he 10$" menu6 db 13,10, "6. Xuat ra so he 16$" mess0 db 13,10, "Chon: $" mess1 db 13,10, "Nhap: $" mess2 db 13,10, "Xuat: $" messkt db 13,10, "Nhan 1 phim de ket thuc ...!$" so dw 0 .code ;dua doan du lieu vao ds mov dx,seg mess1 mov ds,dx ;jmp tpNhaphe2 ;in menu Inmenu: mov ah,9 lea dx,menu int 21h lea dx,menu1 int 21h lea dx,menu2 int 21h lea dx,menu3 int 21h lea dx,menu4 int 21h lea dx,menu5 int 21h lea dx,menu6 int 21h lea dx,mess0 int 21h ;nhap lenh mov ah,1 int 21h xor bx,bx cmp al,31h je tpNhaphe2 cmp al,32h je tpNhaphe10 cmp al,33h je tpNhaphe16 cmp al,34h je Xuathe2 cmp al,35h je Xuathe10 cmp al,36h je Xuathe16 cmp al,27 je kt jmp Inmenu
;thong bao nhap he 2 tpNhaphe2: mov ah,9 lea dx,mess1 int 21h mov si,0 mov ah,1 mov bx,0 Nhaphe2: int 21h cmp al,13 je kthe2 cmp al,30h jb tpNhaphe2 cmp al,31h ja tpNhaphe2 sub al,30h mov bl,al push bx inc si cmp si,16 je kthe2 jmp Nhaphe2 kthe2: cmp si,0 je tpNhaphe2 call gansohe2 jmp Inmenu tpNhaphe10: mov ah,9 lea dx,mess1 int 21h mov so,0 mov bx,10 mov si,0 Nhaphe10: mov ah,1 int 21h cmp al,13 je kthe10 cmp al,30h jb tpNhaphe10 cmp al,39h ja tpNhaphe10 mov ah,0 sub al,30h mov cx,ax mov ax,so mul bx add ax,cx mov so,ax inc si cmp si,5 je kthe10 jmp Nhaphe10 kthe10: cmp si,0 je tpNhaphe10 mov di,so jmp Inmenu tpNhaphe16: mov ah,9 lea dx,mess1 int 21h mov si,0 Nhaphe16: mov ah,1 int 21h cmp al,13 je kthe16 cmp al,30h jb tpNhaphe16 cmp al,39h jna so16 cmp al,41h jb tpNhaphe16 cmp al,46h jna hoa cmp al,61h jb tpNhaphe16 cmp al,66h jna thuong jmp tpNhaphe16 so16: sub al,30h jmp tinh16 hoa: sub al,41h add al,10 jmp tinh16 thuong: sub al,61h add al,10 tinh16: mov ah,0 push ax
inc si cmp si,4 je kthe16 jmp Nhaphe16 kthe16: cmp si,0 je tpNhaphe16 call gansohe16 jmp Inmenu Xuathe2: mov ah,9 lea dx,mess2 int 21h mov cx,2 mov ax,so ;Doi tu he 10 sang he 2 mov si,0 Doi: mov dx,0 div cx ;chia ax cho cx<=>ax=ax/cx, so du dat o dx push dx ;dua dx vao stack inc si cmp ax,0 ja Doi mov cx,si ;xuat so he 2 mov ah,2 Xuat: pop bx add bx,30h mov dx,bx int 21h inc si loop Xuat jmp Inmenu Xuathe10: mov ah,9 lea dx,mess2 int 21h mov ax,so mov bx,10 mov cx,0 chialaydu: mov dx,0 div bx ;chia ax cho bx push dx ;dua dx vao stack inc cx or ax,ax jnz chialaydu ;kiem tra xem ax voi 0 mov ah,2 xuatstack: pop dx add dl,30h int 21h loop xuatstack jmp Inmenu Xuathe16: mov ah,9 lea dx,mess2 int 21h xor dx,dx mov si,0 mov ax,so ;add ax,1 mov bx,16 cmp ax,4096 jae lon4096 cmp ax,256 jae lon256 cmp ax,16 jae lon16 jmp nho16 lon4096: xor dx,dx ;mov bx,4096 div bx push dx ;mov dx,ax inc si lon256: xor dx,dx ;mov bx,256 div bx push dx ;mov ax,dx inc si lon16: xor dx,dx ;mov bx,16 div bx push dx ;mov ax,dx inc si nho16: xor dx,dx ;mov bx,16 div bx push dx inc si mov cx,si mov ah,2 in16: pop dx cmp dl,10 jb nho10 add dl,7 nho10: add dl,30h int 21h loop in16 jmp Inmenu gansohe2 proc mov so,0 pop di mov cx,si mov si,0 xor dx,dx tinh: pop dx push cx xor ax,ax inc si or dl,0 jz nhay mov bx,2 mov ax,1 mov cx,si dec cx jcxz cong nhan2: mul bx loop nhan2 cong: add ax,so ;add so,ax mov so,ax nhay: pop cx loop tinh push di ;mov di,so ret gansohe2 endp gansohe16 proc pop di pop dx mov so,dx mov bx,16 mov cx,si dec cx jcxz kt16 t16: mov ax,bx pop dx mul dx add ax,so mov so,ax mov ax,bx mov bx,16 mul bx mov bx,ax loop t16 kt16: push di mov di,so ret gansohe16 endp
kt: mov ah,9 lea dx,messkt int 21h mov ah,1 int 21h mov ah,4ch int 21h end
|
| | | trexanh078 Dân nhập cư - Chưa có hộ khẩu
Tổng số bài gửi : 8 Experience : 11 Danh Vọng : 0
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Sat Apr 16, 2011 8:43 am | |
| cảm ơn bạn rất nhiều. bạn có thể sửa giúp mình code nè được không? giúp mình với mình cũng cần bài này rất gấp. vấn đề bài này ở chỗ là khi mình nhập một số không phải là số hệ 2 mà nó vẫn xuất ra được giá trị và vấn đề nữa là mình nhập số ở hệ 16 nhưng khi xuất ra kết quả lại không đúng. nếu bạn vô forum thì sửa luôn giúp mình với na. cảm ơn bạn.
Được sửa bởi trexanh078 ngày Sat Apr 16, 2011 8:58 am; sửa lần 1. |
| | | trexanh078 Dân nhập cư - Chưa có hộ khẩu
Tổng số bài gửi : 8 Experience : 11 Danh Vọng : 0
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Sat Apr 16, 2011 8:54 am | |
|
hienxau macro x mov ah,09 mov dx,offset x int 21h endm .model small .stack 100h .data
MENU0 db 10,13,'' DB 10,13,"Lua chon mot chuc nang:" DB 13,10,'1. Nhap vao mot so he 10:' DB 13,10,'2. Nhap vao mot so he 2:' DB 13,10,'3. Nhap vao mot so he 16:' DB 13,10,'4. Hien ra so he 10:' DB 13,10,'5. Hien ra so he 2:' DB 13,10,'6. Hien ra so he 16:'
db 10,13," ESC de thoat.$"
tbnhap10 DB 13,10,'nhap vao mot so he 10:$' tbnhap2 DB 13,10,'nhap vao mot so he 2 :$' tbnhap16 DB 13,10,'nhap vao mot so he 16:$' tb1 DB 13,10,'hien so vua nhap ra he 10 la :$'
tb2 DB 13,10,'hien so vua nhap ra he 2 la:$'
tb3 DB 13,10,'hien so vua nhap ra he 16 la:$'
messkt db 13,10, "Nhan ESC để thoát ...!$" n dw 0
m dw 0 k dw 0 .code mov ax,@data mov ds,ax laplai: call clrscr mov ah,9 lea dx,menu0 int 21h
;nhap lenh mov ah,1 int 21h cmp al,"1" je tpnhaphe10 cmp al,"2" je tpnhaphe2 cmp al,"3" je tpnhaphe16 cmp al,"4" je xuathe10 cmp al,"5" je xuathe2 cmp al,"6" je xuathe16 cmp al,27 je kt jmp laplai
;thong bao nhap he 10 tpNhaphe10: hienxau tbnhap10 mov bx,10 call nhapN mov m,ax jmp laplai tpnhaphe2: hienxau tbnhap2 mov bx,2 call nhapN mov m,ax jmp laplai tpnhaphe16: hienxau tbnhap16 mov bx,2 call nhapN mov m,ax jmp laplai
xuathe10: hienxau tb1 mov ax,m mov bx,10 call hienN jmp laplai xuathe2: hienxau tb2 mov ax,m mov bx,2 call hienN jmp laplai xuathe16: hienxau tb3 mov ax,m mov bx,16 call hienN jmp laplai
kt: mov ah,9 lea dx,messkt int 21h mov ah,1 int 21h mov ah,4ch int 21h
;--------------------------- nhapN proc mov ax,0 mov n,ax nhapx: mov AH,01 int 21h cmp AL,13 je ktnhapN mov AH,0 sub AL,48 mov CX,AX mov AX,n ;mov Bx,10 mul Bx add AX,CX mov n,AX jmp nhapx ktnhapN: mov ax,n RET nhapN endp ;----------- HienN proc xor cx,cx chia10: xor dx,dx div bx push dx inc cx cmp ax,0 ja chia10 Hien10: mov ah,02 pop dx add dx,"0" int 21h loop hien10 mov ah,01 int 21h ret hienN endp
clrscr proc mov ax,03 int 10h ret clrscr endp end kt: mov ah,9 lea dx,messkt int 21h mov ah,1 int 21h mov ah,4ch int 21h nhapN proc mov ax,0 mov n,ax nhapx: mov AH,01 int 21h cmp AL,13 je ktnhapN mov AH,0 sub AL,48 mov CX,AX mov AX,n ;mov Bx,10 mul Bx add AX,CX mov n,AX jmp nhapx ktnhapN: mov ax,n RET nhapN endp ;----------- HienN proc xor cx,cx chia10: xor dx,dx div bx push dx inc cx cmp ax,0 ja chia10 Hien10: mov ah,02 pop dx add dx,"0" int 21h loop hien10 mov ah,01 int 21h ret hienN endp
clrscr proc mov ax,03 int 10h ret clrscr endp end
|
| | | nghthien Tri Phủ
Tổng số bài gửi : 61 Experience : 86 Danh Vọng : 4
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Sat Apr 16, 2011 9:39 pm | |
| Phần nhập 16 bạn copy mờ không sửa chỗ mov bx,2. Nếu nhập 16 thì phải mov bx,16 đúng không!. Vấn đề nhập,xuất 16 không đúng là do bạn chưa kiểm tra xem số xuất ra có phải là ký tự không(lớn hon 9). Phần đó bạn thêm vào như sau: nhapN proc mov ax,0 mov n,ax nhapx: mov AH,01 int 21h cmp AL,13 je ktnhapN mov AH,0
;them cmp al,57 jbe nho48 cmp al,70 jbe nho70 sub al,32 nho70: sub al,7 nho48: ;het
sub AL,48 mov CX,AX mov AX,n ;mov Bx,10 mul Bx add AX,CX mov n,AX jmp nhapx ktnhapN: mov ax,n RET nhapN endp ;----------- HienN proc xor cx,cx chia10: xor dx,dx div bx push dx inc cx cmp ax,0 ja chia10 Hien10: mov ah,02 pop dx ;them cmp dx,9 jbe nho9 add dx,7 nho9: ;het add dx,"0" int 21h loop hien10 mov ah,01 int 21h ret hienN endp |
| | | trexanh078 Dân nhập cư - Chưa có hộ khẩu
Tổng số bài gửi : 8 Experience : 11 Danh Vọng : 0
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Fri May 27, 2011 4:36 pm | |
| hello bạn
bạn ơi mình ghép nối phần hệ 16 vào chương trình của mình rồi nhưng vẫn ko chạy
bạn có thể ghép nối vào chương trình ma mình gửi cho bạn và bạn sửa hộ mình với . 30-5 là mình phải báo cáo rùi. tháng trước mình phải đi tập quân sự không được về nên không xem được bài bạn gửi cho. bây giờ mình mới xem được nhưng ma mình chạy nhưng chương trình không chạy
bạn giúp mình với thanks!!!!!!!!!!!!!!!! |
| | | trexanh078 Dân nhập cư - Chưa có hộ khẩu
Tổng số bài gửi : 8 Experience : 11 Danh Vọng : 0
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! Sat May 28, 2011 10:12 pm | |
| |
| | | Sponsored content
| Tiêu đề: Re: HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! | |
| |
| | | | HELP..! Giúp mình BT hợp ngữ này với, mình đang cần gấp!! | |
|
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
| |
| |
| |