You are on page 1of 3

Ho ten : Kieu Van Hai

Lop : Tin A 52
Bai tap mon Vi xu ly va lap trinh Assembly
De bai : Nhap 1 chu cai tu ban phim . Chuyen chu thuong thanh chu hoa
va nguoc lai .
Bai lam
MODEL SMALL
STACK 100H
DATA TB1 DB “ Nhap vao ki tu thuong $”
TB2 DB 10,13, “Ki tu hoa”
CHR DB ? , “S”
CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
; In ra thong bao nhap ki tu
LEA DX, TB1
INT 21H
; Nhap vao tu ban phim 1 ki tu thuong
MOV AH , 1
INT 21H
; Doi ki tu thuong thanh ki tu hoa
SUB AL, 20H
MOV CHR, AL
; In ra man hinh ki tu hoa
LEA DX, TB2
MOV AH, 9
INT 21H
; Doi ki tu hoa thanh ki tu thuong
SBB AL, 20H
MOV CHR, AL
; In ra man hinh ki tu thuong
LEA DX, TB1
MOV AH,9
INT 21H
; Tro ve DOS
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
Đề bài: Nhập 2 số dạng nhị phân, tính tổng 2 số đó

Ở đây giả thiết làm việc trên môi trương DOS nên các số đều là 16bit (2 bytes)
TITLE BAI2
.MODEL SMALL

.STACK 100H
.DATA
CR EQU 0DH
LF EQU 0AH

MSG1 DB 'Hãy nhập số thứ nhất: $'


MSG2 DB CR,LF,'Hãy nhập số thứ hai: $'
MSG DB CR,LF,'Kết quả là: $'
NUM1 DW 0
NUM2 DW 0

.CODE
MAIN PROC
;khởi tạo DS (data segment)
MOV AX,@DATA
MOV DS,AX

;hiển thị thông báo cho ng dùng nhập số thứ nhất


MOV AH,9
LEA DX,MSG1
INT 21H

;nhập số thứ nhất - BX chứa số nhập vào dạng nhị phân


XOR BX,BX
MOV AH,1
INT 21H
WHILE_1:
CMP AL,CR
JE END_WHILE_1
AND AL,0FH
SHL BX,1
OR BL,AL
INT 21H
JMP WHILE_1
END_WHILE_1:
MOV NUM1,BX

;hiện thị thông báo


MOV AH,9
LEA DX,MSG2
INT 21H

;nhập số thứ 2
XOR BX,BX
MOV AH,1
INT 21H
WHILE_2:
CMP AL,CR
JE END_WHILE_2
AND AL,0FH
SHL BX,1
OR BL,AL
INT 21H
JMP WHILE_2
END_WHILE_2:
MOV NUM2,BX

;cộng 2 số
MOV AX,NUM2
ADD NUM1,AX

;hiển thị thông báo


MOV AH,9
LEA DX,MSG
INT 21H

;hiển thị kết quả


MOV CX,16
MOV BX,NUM1
MOV AH,2
FOR_:
ROL BX,1
JAE ELSE_
MOV DL,'1'
JMP END_IF
ELSE_:
MOV DL,'0'
END_IF:
INT 21H
LOOP FOR_

;quay về DOS
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN

ở phần hiển thị kết quả, ta dùng hàm nhảy JAE để kiểm tra trạng thái của cờ CF (nếu CF = 0 thì
hàm nhảy đc thực hiện => xem thêm chương 6 để rõ hơn)

code này các pác xem ở chương 7 ấy, code này kô kiểm tra lỗi, nếu muốn kiểm tra lỗi thì xem thêm
chương 9

công nhận cái này trâu thật, bài này lam trong C chắc mấy dòng :))

You might also like