⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 console.asm

📁 Win32 汇编 实现文件copy功能 程序在masm8.1 环境下调试通过
💻 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 + -