21,500
社区成员
发帖
与我相关
我的任务
分享
;MASMPlus 代码模板 - 纯 DOS 程序
.model small
.stack 200h
.data
.code
start:
mov ax,cs
mov ds,ax
;mov ax,3C00h
;mov cx,20h ;文件属性为归档
;mov dx,offset fileName
;int 21h ;建立文件
jc err1
;mov bx,ax
;mov ax,3C00h
;int 21h ;关闭文件
mov ax,3d02H
mov dx,offset filename
int 21h ;按读写方式打开文件
jc err2
mov bx,ax
mov fHandle,ax
mov si,1
mov di,offset szMsg
s:
cmp si,10000
je t
call ChangeValue
inc WORD ptr [di]
inc si
call delay
jmp s
ChangeValue proc
mov cx,0
mov dx,199
mov al,0
mov ah,42H
int 21h
mov bx,fHandle
mov ax,4000H
mov cx,2 ;要写的字节数
mov dx, di
int 21h ;写到文件
jc err4
ret
ChangeValue endp
delay proc near public uses ax cx
mov cx, 5000
@@:
in al,61h
and al,10h
cmp al,ah
je @b
mov ah,al
loop @b
ret
delay endp
t:
mov ax,3c00H
int 21h
exit:
mov ah,1
int 21h
mov ax,4c00H
int 21h
err1:
mov dx,offset error1
jmp ShowErr
err2:
mov dx,offset error2
jmp ShowErr
err3:
mov dx,offset error3
jmp showerr
err4:
mov dx,offset error4
jmp showerr
ShowErr:
mov ax,900H
int 21h
jmp exit
szMsg dw 1
error1 db 'Create file fail.',13,10,'$'
error2 db 'Open file fail.',13,10,'$'
error3 db 'Write file fail.',13,10,'$'
error4 db 'Move postion fail.',13,10,'$'
fileName db 'c:\emu8086.io',0
fHandle dw ?
end start
;MASMPlus 代码模板 - 纯 DOS 程序
.model small
.stack 200h
.data
.code
start:
mov ax,cs
mov ds,ax
;mov ax,3C00h
;mov cx,20h ;文件属性为归档
;mov dx,offset fileName
;int 21h ;建立文件
jc err1
;mov bx,ax
;mov ax,3C00h
;int 21h ;关闭文件
mov ax,3d02H
mov dx,offset filename
int 21h ;按读写方式打开文件
jc err2
mov bx,ax
mov fHandle,ax
mov si,1
mov di,offset szMsg
s:
cmp si,100
je t
call ChangeValue
inc BYTE ptr [di]
inc si
call delay
jmp s
ChangeValue proc
mov cx,0
mov dx,199
mov al,0
mov ah,42H
int 21h
mov bx,fHandle
mov ax,4000H
mov cx,1 ;要写的字节数
mov dx, di
int 21h ;写到文件
jc err4
ret
ChangeValue endp
delay proc near public uses ax cx
mov cx, 50000
@@:
in al,61h
and al,10h
cmp al,ah
je @b
mov ah,al
loop @b
ret
delay endp
t:
mov ax,3c00H
int 21h
exit:
mov ah,1
int 21h
mov ax,4c00H
int 21h
err1:
mov dx,offset error1
jmp ShowErr
err2:
mov dx,offset error2
jmp ShowErr
err3:
mov dx,offset error3
jmp showerr
err4:
mov dx,offset error4
jmp showerr
ShowErr:
mov ax,900H
int 21h
jmp exit
szMsg db 1
error1 db 'Create file fail.',13,10,'$'
error2 db 'Open file fail.',13,10,'$'
error3 db 'Write file fail.',13,10,'$'
error4 db 'Move postion fail.',13,10,'$'
fileName db 'c:\emu8086.io',0
fHandle dw ?
end start
.model small
.stack 200h
.code
testproc proc uses ax
mov ax, 1234
out 199, ax
mov ax, -5678
out 199, ax
; Eternal loop to write
; values to port:
mov ax, 0
mov cx, 10000
x1:
out 199, ax
inc ax
loop x1
;hlt
ret
testproc endp
start:
call testproc
mov ah,1 ;暂停,任意键关闭
int 21h
mov ah,4ch
int 21h
end start