键盘输入并回显
把01传给AH,则可以实现键盘输入并回显,如果输入成功则AL为输入的字符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| MyStack segment stack ;stack表明是堆栈段,则之后系统给地址会从大到小,而且系统会自动把该段的基址送入ss寄存器 db 256 dup(?) MyStack ends
MyData segment ;数据段 db 03,04,05,06 string db "Hello World$" MyData ends
MyCode segment ;代码段 start: ;告诉编译器代码从此处开始 mov ax,MyData ;获取段基址 mov ds,ax ;将段基址送入寄存器 mov es,ax
;键盘输入并回显 mov ah,01 int 21h
mov dx,offset string ;==>mov dx,word ptr[0]==>mov dx,0 获取hello world在代码段的偏移 mov ah,09h ;系统调用printf函数 int 21h
mov ax,4c00h int 21h ;退出程序 MyCode ends
end start
|
数入a后al为a的ASCII码61,说明输入成功
操作文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| MyStack segment stack ;stack表明是堆栈段,则之后系统给地址会从大到小,而且系统会自动把该段的基址送入ss寄存器 db 256 dup(?) MyStack ends
MyData segment ;数据段 db 03,04,05,06 string db "Hello World$" path db "C:\1.txt",0 MyData ends
MyCode segment ;代码段 start: ;告诉编译器代码从此处开始 mov ax,MyData ;获取段基址 mov ds,ax ;将段基址送入寄存器 mov es,ax
;打开文件 mov dx,offset path mov al,3 mov ah,3dh int 21h ;读文件 mov bx,ax mov dx,offset path mov cx,10 mov ah,3fh int 21h
;关闭文件 mov bx,bx mov ah,3eh int 21h
;键盘输入并回显 mov ah,01 int 21h
mov dx,offset string ;==>mov dx,word ptr[0]==>mov dx,0 获取hello world在代码段的偏移 mov ah,09h ;系统调用printf函数 int 21h
mov ax,4c00h int 21h ;退出程序 MyCode ends
end start
|
输入10个字节后,AX显示读入了10个字节