PDA

View Full Version : [Help] Ai biết về Assembly gải dùm em bài này với


kim
22-08-2012, 10:32 AM
;************************************************* ***

;CHUONG TRINH: Tinh dung luong cua mot tap tin. *

;DAC BIET co the tinh duoc file dung luong >64KB *

;************************************************* ***

CODE SEGMENT PARA PUBLIC 'CODE'

ASSUME CS:CODE, DS:CODE, ES:CODE, SS:CODE

ORG 100h

Begin:

JMP Start

Filename DB 255,0,255 DUP(0)

DTA DB 128 DUP(0)



String_Input DB 'Nhap duong dan den tap tin (vi du: C:\F2.ASM): $'

File_Size DB 0Dh,0Ah,'Kich thuoc tap tin la (don vi tinh: BYTE): $'

String_Error DB 0Dh,0Ah,'Khong tim thay tap tin. $'



Start:

MOV AX,CS

MOV DS,AX

MOV ES,AX

CALL Clear_Screen

;----------------------------------------------------

đăng ký sử dụng phần mềm chứng khoán (http://stockonlinevn.vn/DangKySuDung/BangGia.aspx) MOV DX,offset String_Input

MOV AH,09h

INT 21h

CLD

MOV DX,offset Filename

MOV AL,0Ah

đăng ký sử dụng phần mềm chứng khoán MOV AH,0Ch

INT 21h



XOR BX,BX

MOV BL,byte PTR[filename+1]

MOV byte PTR[filename+BX+2],0



MOV DX,offset DTA

MOV AH,1Ah

INT 21h



XOR CX,CX

MOV DX,offset filename+2

MOV AH,4Eh

INT 21h



JC NotFoundFile

;----------------------------------------------------

MOV DX,offset File_Size

MOV AH,09h

INT 21h

MOV giúp đỡ sử dụng chứng khoán (http://stockonlinevn.vn/About.aspx) BX,Word PTR[DTA+1Ah]

MOV DX,Word PTR[DTA+1Ch]

CALL WriteDec32bit



JMP QUIT

NotFoundFile:

MOV DX,offset String_Error

MOV AH,09h

INT 21h

;---------------------------------------------------

QUIT:

MOV AH,01h

INT 21h

MOV AH, 4Ch

INT 21h

RET

;----------------------------------------------------

Clear_Screen giúp đỡ sử dụng chứng khoán PROC NEAR

XOR DX,DX

MOV AH,2

INT 10H

MOV AL,20h

MOV CX,2000

MOV AH,0Ah

INT 10H

RET

Clear_Screen ENDP

;----------------------------------------------------

WriteDec32bit chiêu thức áp dụng chứng khoán (http://stockonlinevn.vn/ChieuThucApDung/Bai1.aspx) PROC NEAR

MOV AX,DX

MOV SI,10d

XOR CX,CX

Loop_div:

XOR DX,DX

DIV SI

PUSH AX

MOV AX,BX

DIV SI

MOV BX,AX

POP AX

PUSH DX

INC CX



CMP AX,BX

JZ Write_digit_loop

JMP Loop_div

Write_digit_loop:

POP AX

ADD AL,'0'

INT 29h

Loop Write_digit_loop

EndWDec:

RET

WriteDec32Bit ENDP

;----------------------------------------------------

CODE ENDS

END chiêu thức áp dụng chứng khoán Begin



---------- Post added at 20:29 ---------- Previous post was at 20:27 ----------



Hai đoạn này quan trọng nhất giúp em vơi! Thank nhiều



MOV DX,offset String_Input

MOV AH,09h

INT 21h

CLD

MOV DX,offset Filename

MOV AL,0Ah

MOV AH,0Ch

INT 21h



XOR BX,BX

MOV BL,byte PTR[filename+1]

MOV byte PTR[filename+BX+2],0



MOV DX,offset DTA

MOV AH,1Ah

INT 21h



XOR CX,CX

MOV DX,offset filename+2

MOV AH,4Eh

INT 21h



JC NotFoundFile

;----------------------------------------------------

MOV DX,offset File_Size

MOV AH,09h

INT 21h

MOV BX,Word PTR[DTA+1Ah]

MOV DX,Word PTR[DTA+1Ch]

CALL WriteDec32bit



JMP QUIT

NotFoundFile:

MOV DX,offset String_Error

MOV AH,09h

INT 21h

;---------------------------------------------------