汇编输入输出(单个字符以及字符串)
来源:互联网 发布:淘宝双十一打几折 编辑:程序博客网 时间:2024/06/07 22:25
简单的汇编代码演示
- 简单的汇编代码演示
- 1输入输出
- 1 INT 16HROM BIOS中断
- 1 INT 21HDOS中断
- 2字符串的输入
- 1输入输出
- 简单的汇编代码演示
1、输入输出
输入输出主要有两个中断调用,分别为INT 16H 和INT 21H
1.1 INT 16H(ROM BIOS中断)
原理:
16H中断服务子程序提供了多个功能,每个功能对应一个功能号码,调用他们的方法是
功能号->AHINT 16H
相关示例代码(可以跑起来):
主要是从键盘中读取一个字符
DATAS SEGMENT CHAR DB ?DATAS ENDSSTACKS SEGMENT DB 128 DUP (?)STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX MOV AH,0 ;进行输入 INT 16H MOV CHAR,AL mov AH,2 ;进行输出 MOV DL,CHAR INT 21H MOV AH,4CH INT 21HCODES ENDS END START
1.1 INT 21H(DOS中断)
原理:
功能号发送AH寄存器,调用参数所求的位置,然后发送INT 21H系统功能调用中断
主要的功能号如下图所示:
示例代码:
;输出hello world;data数据段定义data segment string db 'hello world','$' ;切忌串结束符$data ends;代码段定义code segment;程序开始start: mov ax,data ;将数据段段地址装入AX寄存器 mov ds,ax ;将数据段段地址通过通用寄存器AX装入DS mov dx,offset string ;将串的段内地址装入DX mov ah,09h ;调用DOS的09H号功能,传入参数DS:DX=串地址,'$'结束字符串 int 21h mov ah,4ch ;调用DOS的4CH号功能,带返回码结束,返回码存在于AL int 21hcode ends ;代码段定义结束end start ;程序结束
运行结果如下:
2、字符串的输入
这里用到了上面DOS中断的0AH功能
可以将一段字符串读入并显示在屏幕上,代码如下
DATAS SEGMENT buffer db 60;定义缓冲区长度 db ? ;预留实际输入字符个数的技术单元 db 60 dup(?);设DS已是buffer的段基址DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX mov ah,0ah;接受一串字符 lea dx,buffer int 21h ;此处输入代码段代码 MOV AH,4CH INT 21HCODES ENDS END START
阅读全文
0 0
- 汇编输入输出(单个字符以及字符串)
- 单个字符的输入输出函数
- java中单个字符输入输出
- 字符串的输入输出 汇编
- 汇编输入输出字符串
- Java中将单个字符以及字符串转化为数字
- 字符和字符串的输入输出(经典)
- 字符和字符串输入输出
- c语言中scanf输入带空格的字符串以及scanf输入单个字符的问题
- c/c++字符、字符串输入输出
- 汇编 字符串输入输出 源代码及详细解释
- C和C++的字符(字符串)输入输出
- 字符串中单个字符的用法
- C/C++ 单个字符与字符串
- iOS 获取字符串中的单个字符
- 查找字符串中单个字符个数
- 常见的C++字符&字符串输入输出
- Delphi中string数据类型的特殊用法(获取string字符串的单个字符)
- Spring 01
- Spring解析
- CSS知识点
- 1839: 恶搞指数
- 编写函数void change(char *a,char *b,char*c
- 汇编输入输出(单个字符以及字符串)
- 深度神经网络概述:从基本概念到实际模型和硬件基础
- 读取请求参数、向页面传值、重定向
- HTTP/2 协议入门
- 《一个普通IT人的十年回顾》金旭亮(看看自己与别人的差别)
- CSU-1809:Parenthesis 括号匹配问题(线段树维护最小值)
- 删星号
- Java知识思维导图(二)
- 记一次项目实训心得经验