Thứ Hai, 12 tháng 12, 2011

Video hướng dẫn kết nối internet bằng modem điện thoại

chi tiết thuật toán đưa ra số hex [lập trinh assembly](tham khảo)

Đây là thân CODE của thuật toán đưa ra số hex
...
mov cx,4;gán cho cx là 4 dùng trong vòng lập  for
for_:
mov dl,bh
shr dl,4

mov al,dl
cmp dl,10
jb then
add al,37h;biến đổi A...F của mã hex thành ký tự 'A...F'
jmp thoatf
then:
add al,30h;biến đổi 0...9 của mã hex thành ký tự '0...9'
thoatf:

mov ah,2
mov dl,al

int 21h
shl bx,4
loop for_
...

Thứ Ba, 6 tháng 12, 2011

Bài giải đưa ra số nhị phân [lập trình assembly](tham khảo)

Bài tập nhập vào 1 ký tự và in ra số nhị phân tương ứng trong assembly

.model small
.stack 100h
.data
 tb db 'Nhap vao 1 ki tu: $'
 xuat db ?
 kt db 10,13,"Ma ASCII cua <"
 bien db ?
 tt db "> duoi dang nhi phan la: $"
 sobit db 'So bit 1 la: '
 TMP DB ?,'$'
.code
main proc
;khoi tao bien ds
mov ax,@data
mov ds,ax
;xuat hang thong bao
lea dx,tb
mov ah,9
int 21h
;thuc hien nhap 1 ky tu
mov ah,1
int 21h
;LUU TRU
mov xuat,al
mov bien,al
mov bl,al
lea dx,kt
mov ah,9
int 21h
mov al,bl
CMP AL,39H
JG LETTER
AND AL,0FH
JMP SHIFT
LETTER:
SUB AL,37H
SHIFT:
;THUC HIEN CAC HAM TINH
XOR BX,BX ;XOA BX
MOV CX,16
MOV TMP,'0'
OR BL,AL
FOR_:
SHL BX,1
JC DUARA1
MOV AH,2
MOV DL,'0'
INT 21H
jmp end_if
DUARA1:
inc tmp
MOV AH,2
MOV DL,'1'
INT 21H
end_if:
;THUC HIEN VONG LAP
LOOP FOR_
mov ah,2
mov dl,0ah
int 21h
lea dx,sobit
mov ah,9
int 21h
;-------- tra ve dos
mov ah,4ch
int 21h
endp
end main

Bài này mang tính chất tham khảo!