Code assembly lab assignmet !!!
ยังไม่มี Flow Chart นะ ยังไม่ได้ทำ ฮ่า ๆ
สงสัยไร ถามใน m นะ ,, :)
req - ต้องเตรียมข้อความภาษาอังกฤษ save เป็น .txt (เพื่อเปิดมาอ่านได้)
edit * เพิ่ม flowchart ให้แบบเกือบละเอียด ห้าห้า (คลิกดูรูปใหญ่ได้มั่ง :P)

.model small
.stack
.data
str0 db "Enter Input File Name : ",'$'
strlen db 20
actual db 0
bufferz db 20 dup(0)
str0out db "Enter Output File Name : ",'$'
strlenout db 20
actualout db 0
bufferzout db 20 dup(0)
;Filename db "goku.txt",0
Filehandle dw 00
buffer db 10000 dup(?),"$"
;Filesave db "output.txt",0
fh dw 00
bfh db 10000 dup(?)
bfh2 db 10000 dup(?)
counter1 db 0
counter2 db 0
.code
main proc
mov ax,@data
mov ds,ax
;set mode
mov ah,0
mov al,3
int 10h
call FILE
call CLEAR
call FILE2
newpage:
;clear screen
mov ah,07h
mov al,00h
mov bh,00000111b
sub cx,cx
mov dx,184fh
int 10h
;set ruler
mov counter1,27
entez:
sub counter1,1
cmp counter1,0
je check
mov counter2,79
again:
mov al,[si]
mov ah,02h
mov dl,al
int 21h
mov [di],al
inc si
inc di
cmp al,0Dh
je entez
dec counter2
jnz again
mov ah,02h
mov dl,0Dh
int 21
cmp counter2,0
je entez
check:
;check enter esc
mov ah,0
int 16h
cmp al,0Dh
je newpage
cmp al,1Bh
je scanbfh
jmp check
scanbfh:
lea si,bfh
lea bx,bfh2
mov cx,29999
chk:
;check k
mov al,4bh
cmp [si],al
jne not_chk
inc si
dec cx
jz exit
chm:
mov al,4dh
cmp [si],al
jne not_chm
inc si
dec cx
jz exit
chi:
mov al,49h
cmp [si],al
jne not_chi
inc si
dec cx
jz exit
cht:
mov al,54h
cmp [si],al
jne not_cht
inc si
dec cx
mov al,4bh
mov [bx],al
inc bx
mov al,4dh
mov [bx],al
inc bx
mov al,49h
mov [bx],al
inc bx
mov al,54h
mov [bx],al
inc bx
mov al,4ch
mov [bx],al
inc bx
jmp chk
not_chk:
mov dx,[si]
mov [bx],dx
inc si
inc bx
dec cx
jz exit
jmp chk
not_chm:
mov al,4bh
mov [bx],al
inc bx
jmp not_chk
not_chi:
mov al,4bh
mov [bx],al
inc bx
mov al,4dh
mov [bx],al
inc bx
jmp not_chk
not_cht:
mov al,4bh
mov [bx],al
inc bx
mov al,4dh
mov [bx],al
inc bx
mov al,49h
mov [bx],al
inc bx
jmp not_chk
exit:
;write output
mov ah,40h
lea dx,bfh2
mov cx,30000
mov bx,fh
int 21h
;close file
mov bx,Filehandle
mov ah,3eh
int 21h
mov bx,fh
mov ah,3eh
int 21h
;end proc
mov ah,4ch
INT 21h
main endp
FILE PROC
mov ah,09h
mov dx,offset str0
int 21h
mov ah,0Ah
mov dx,offset strlen
int 21h
lea bx,bufferz
add bl,actual
sub ah,ah
mov [bx],ah
mov ah,02h
mov dl,0Ah
int 21h
mov dl,0dh
int 21h
mov ah,09
mov dx,offset str0out
int 21h
mov ah,0Ah
mov dx,offset strlenout
int 21h
lea bx,bufferzout
add bl,actualout
sub ah,ah
mov [bx],ah
ret
FILE ENDP
CLEAR PROC
;clear screen
mov ah,07h
mov al,00h
mov bh,00000111b
sub cx,cx
mov dx,184fh
int 10h
ret
CLEAR ENDP
FILE2 PROC
;openfile
lea dx,bufferz
mov ah,3dh
mov al,0
int 21h
mov FileHandle,ax
;create file save
lea dx,bufferzout
mov ah,3ch
mov cx,0
int 21h
mov fh,ax
;readfile
mov ah,3fh
lea dx,buffer
mov cx,10000
mov bx,FileHandle
int 21h
cld
lea si,buffer
lea di,bfh
ret
FILE2 ENDP
end main
Ref : By GokU.
โอ้ววววววววววว ก๊อบ 55555
ReplyDeleteถ้ามันหาไฟล์ต้นฉบับไม่เจอ มันไม่ต้องวนรับชื่อไฟล์ใหม่หรอ
ReplyDeleteซับซ้อนไปป่ะ แค่เค้าเรายังทำเองไม่ได้เลย 55