Thứ Hai, 12 tháng 12, 2011
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
Bài này mang tính chất tham khảo!
.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!
Đăng ký:
Bài đăng (Atom)