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

📄 打印字符.txt

📁 汇编语言课程设计
💻 TXT
字号:
dataSeg segment
welcome db 'Chars Printing    By Liu', 13, 10
   db 'Enter chars here:', 13, 10, '$'
chars80 db 'You have entered 80 chars. Press <Enter> to print them or any other key to abort.', 13, 10, '$'
print db 'Printing...$'
printed db ' Done$'
aborted db 'Aborted.$'
buffer db 80 dup (0)
count equ $-buffer
crlf db 13, 10, '$'
dataSeg ends

staSeg segment stack
db 100 dup (0)
staSeg ends

; 宏
showStr macro string
mov dx, offset string
mov ah, 9
int 21h
endm

codeSeg segment
main proc
assume cs:codeSeg, ds:dataSeg, ss:staSeg
start:
mov ax, dataSeg
mov ds, ax
showStr welcome

mov cx, count
mov bx, offset buffer
loopS:
mov ah, 1
int 21h
mov [bx], al
inc bx
loop loopS

showStr chars80
mov ah, 0
int 16h   ; 读取键盘字符
cmp ah, 1ch   ; 比较是否为 Enter 键

; DEBUG - 如果没有打印机而使用代码 (1),会提示:
; Write fault error writing device PRN
; Abort, Retry, Ignore, Fail?
; 为正常运行,可以使用代码 (2),按任意键都放弃打印。
jnz abr   ; (1) 若不是,跳转到abr
; jmp abr   ; (2) 跳转到abr
prn:
showStr print
mov cx, count
mov bx, 0
next:
mov ah, 5   ; 使用打印功能
mov dl, buffer[bx] ; 要打印的字符
int 21h   ; 调用DOS
inc bx
loop next
mov ah, 5
mov dl, 0dh
int 21h
mov ah, 5
mov dl, 0ah
int 21h
showStr printed
jmp exit
abr:
showStr aborted
exit:
showStr crlf
mov ax, 4c00h
int 21h
main endp
codeSeg ends
end main

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -