?? console.asm
字號:
.386p
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
.data
lpexistingfilename db 40 dup (?)
lpnewfilename db 40 dup (?)
bfailifexists db 'FALSE',0
caption db '匯編語言-文件拷貝',0
first db '輸入源文件名',0
second db '輸入目標文件名',0
third db '成功拷貝',0
forth db '出錯',0
text db '演示',0
.data?
align 4
num dd ?
written dd ?
hcs dd ?
hStdIn dd ?
hStdOut dd ?
inter db ?
.code
trim proc
mov eax,0dh
@@: mov ecx,ds:[ebx]
and ecx,0ffh
cmp eax,ecx
jz @f
add ebx,1
jmp @b
@@: mov eax,0
mov ds:[ebx],eax
ret
trim endp
start:
main proc
invoke SetConsoleTitleA,offset caption
invoke GetStdHandle,STD_INPUT_HANDLE
mov hStdIn,eax
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov hStdOut,eax
invoke WriteConsole,hStdOut,offset first,offset second-offset first,\
offset num,NULL
invoke ReadConsole,hStdIn,offset lpexistingfilename,\
offset lpnewfilename-offset lpexistingfilename,offset num,NULL
invoke WriteConsole,hStdOut,offset second,\
offset third-offset second,offset num,NULL
invoke ReadConsole,hStdIn,offset lpnewfilename,\
offset bfailifexists-offset lpnewfilename,offset num,NULL
mov ebx,offset lpexistingfilename
invoke trim
mov ebx,offset lpnewfilename
invoke trim
invoke CopyFile,addr lpexistingfilename,addr lpnewfilename,0
cmp eax,0
jne OK
invoke WriteConsole,hStdOut,offset forth,\
offset text-offset forth,offset num,NULL
invoke CloseHandle,hStdIn
invoke ExitProcess,1
OK: invoke WriteConsole,hStdOut,offset third,\
offset forth-offset third,offset num,NULL
invoke CloseHandle,hStdIn
invoke CloseHandle,hStdOut
invoke ExitProcess,0
ret
main endp
end start
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -