汇编语言第8次实验报告:输入输出程序设计

合集下载

汇编语言程序设计:_基本输入输出程序-精

汇编语言程序设计:_基本输入输出程序-精
第四讲 基本输入/输出程序
1. 键盘输入程序设计 2. 显示输出程序设计 3. 指令学习 4. 本讲小结 5. 作业
1、键盘输入程序
键盘输入方法
使用DOS功能调用 INT 21h
AH=01
键盘输入并回显
从标准输入设备读取字符,带回显,字符的ASCII码存放在AL.如果键 盘缓冲区没有字符,将等待输入。
如何知道 b = ?
mov ah,1 int 21h mov dl,al int 20h
程序2 (无回显)
mov ah,7 int 21h mov dl,al int 20h
键盘输入示例2
将键盘输入的一个一位数保存在DL寄存器中 程序1
mov ah,1 int 21h sub al,‘0’ ;数字0的ASCII码 30H mov dl,al int 20h
mov ch,al
; 输入的第2个数据存放在ch中
mov dl,cl
add dl,ch
int 20h
键盘输入示例4
接受键盘输入的一个两位正整数,保存在DL寄存器中
思考
两位正整数的输入假设是xy(x为十位数,y为个位数)
使用键盘输入首先接收到的是x,然后是y
在DL中要保存的是使用x和y计算出的数
怎样计算 ?
开始
输入 AL 计算ALALx2
输出AL的值 结束
显示输出示例1(程序调试)
该程序有错误!
跟踪后发现什么?
错误原因
使用DOS功能调用 INT 21h AH=2 将字符输出到标准输出设备,显示字符的ASCII码存放在DL中。 显示后 AL = DL
程序2
MOV AH,1 INT 21H SUB AL,30H ADD AL,AL MOV CL,AL ;保存在cl中 MOV DL,'<' MOV AH,2 INT 21H MOV DL,CL ;从cl中取出数据 ADD DL,30H MOV AH,2 INT 21H MOV DL,'>' MOV AH,2 INT 21H INT 20H

字符及字符串输入输出与顺序程序设计实验报告

字符及字符串输入输出与顺序程序设计实验报告

字符及字符串输入输出与顺序程序设计实验实验报告2.2.1 实验目的1、学习和掌握字符及字符串的输入输出方法。

2、掌握顺序程序的设计方法。

3、进一步掌握调试工具的使用方法。

2.2.2 实验预习要求1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。

2、复习BCD码运算调整指令。

3、根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。

4、从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。

2.2.3实验内容从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。

1、问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。

由于数字0 9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。

综上所述,需要考虑以下问题。

(1)从键盘输入一个一位十进制数的方法通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOV AH, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值(2)提示信息字符串的显示通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。

《汇编语言程序设计》第8章输入、输出与中断

《汇编语言程序设计》第8章输入、输出与中断

输入输出程序设计示例
读取键盘输入
通过IN指令读取键盘控制器端 口的数据,解析按键信息。
控制LED显示
通过OUT指令向LED控制端口 发送数据,控制LED的亮灭和闪 烁。
串行通信程序设计
通过IN和OUT指令实现串行数 据的发送和接收,需要设置串 行通信参数和端口地址。
并行通信程序设计
通过IN和OUT指令实现并行数 据的传输,需要设置并行通信
改进方向
进一步加强汇编语言编程和调试技能的学习和实践,提高代码质量和效率。同时,探索更多的输入输出和中断应 用场景,拓展知识面和应用能力。
THANKS FOR WATCHING
感谢您的观看
CPU在执行输入输出指令时,可能需要等待外部设备的响应,此时CPU 可以转而执行其他任务,直到收到外部设备的中断请求后再继续执行输 入输出操作。
02 输入输出指令及编程方法
输入输出指令介绍
1 2
IN指令
从端口读取数据到累加器中,可用于读取外设状 态或数据。
OUT指令
将累加器中的数据输出到端口,可用于控制外设 或发送数据。
04 输入输出与中断控制芯片 介绍
典型输入输出控制芯片
01
02
03
8255芯片
具有三个8位并行I/O端口, 可通过编程控制各端口的 工作模式和数据传输方向。
8253芯片
可编程定时/计数器,可生 成定时中断或计数中断, 常用于控制外部设备的定 时操作。
串行通信接口芯片
如8250等,实现串行数据 的传输和控制,常用于与 其他设备的串行通信。
3
端口寻址方式
直接寻址和间接寻址,直接寻址指定端口地址, 间接寻址通过DX寄存器间接指定端口地址。

汇编语言第八章 输入与输出程序设计

汇编语言第八章 输入与输出程序设计

DMA方式:也称为成组数据传送方式.主要适用于—些高速的 /O设备,如 方式:也称为成组数据传送方式.主要适用于 些高速的 些高速的I/ 设备 设备, 方式 磁带,磁盘,模数转换器等设备.DMA方式能使 方式能使I 磁带,磁盘,模数转换器等设备.DMA方式能使I/O设备直接和存储器进行成 批数据的快速传送.每个字节一到达端口,就直接从接口送到存储器,同样, 批数据的快速传送.每个字节一到达端口,就直接从接口送到存储器,同样, 接口和它的DMA控制器也能直接从存储器取出字节并把它送到I DMA控制器也能直接从存储器取出字节并把它送到 设备中去. 接口和它的DMA控制器也能直接从存储器取出字节并把它送到I/O设备中去.
第一章 基础知识 第八章 输入与输出程序设计
第一章 基础知识 第八章 输入与输出程序设计
第二节:程序直接控制 / 方式 第二节:程序直接控制I/O方式
I/O端口的地址编码:计算机的外部设备和大容量存储设备都是通过接口连接 / 端口的地址编码 端口的地址编码: 到系统上,每个端口由一组寄存器组成,这些寄存器都分配有一个地址编码, 到系统上,每个端口由一组寄存器组成,这些寄存器都分配有一个地址编码, 该编码称为I 计算机的CPU和内存就是通过这些端口和 该编码称为I/O端口的地址编码 .计算机的 和内存就是通过这些端口和 外部设备进行通讯的. 外部设备进行通讯的. I/O接口中有用作数据缓 / 接口中有用作数据缓 冲的数据寄存器 数据寄存器, 冲的数据寄存器,有用做 保存设备和接口的状态信 息,供CPU对外设进行测 对外设进行测 试的状态寄存器 状态寄存器; 试的状态寄存器;还有用 来保存CPU发出的命令以 来保存 发出的命令以 控制接口和设备的操作的 命令寄存器. 命令寄存器.它们都分配 有各自的端口号, 有各自的端口号,CPU就 就 是通过不同的端口号来选 择外部设备的

汇编源程序字符串输入输出

汇编源程序字符串输入输出
(5)变量buf1中的第1个字符是字母'H',9号子功能从该字 母开始,逐个显示后续字符,遇到13和10分别进行回车换行处 理,直到遇到'$'符为止,'$'本身并不出现在屏幕上,此时的输 出情况是:
Hello,
this is an example.
并且光标停在了第2行输出的最后一个符号‘.’的后面。虽然 buf1的定义中在‘$’后面还有内容,这些内容都不会被输出。
(3) 程序中没有类似的指令对CS赋值。这是因为操作系 统DOS把该程序调进内存后,会把机器的控制权交给该程序, 这是通过修改CS和IP的值的方法实现的。也就是说,DOS在移 交控制权时就已经把CS和IP都放好了正确的值,而不需要用户 程序进行处理。
(4)程序中的第1次INT 21H调用前,用LEA指令把变量 buf1的偏移地址取到寄存器 DX中,用MOV指令把AH赋值为子 功能号9,而在此之前DS已被赋值为buf1所在的data 段的段地 址。
(3)输入缓冲区的最前面一个字节(图5.3中len1处)的值 由用户程序填写,用以指出允许输入的最大字符数。该值是
字节型无符号数,有效范围是0~255,最后按的回车键也计算 在内。当已输入len1–1个字符后就只能按回车键了,按其它键 都会被认为是不正确的输入而不被机器认可,并且喇叭还会
发出“嘀”的一声响以示警告。如果len1=1,表示只能按1个 键,这个键只能是回车键,按其它键都会有“嘀”的一声警
(5)子功能调用完成后,输入的字符串以ASCII的形式 从输入缓冲区的第3个字节起连续存放,最后一个字符是回 车键(0DH)。第2个字节中放的是输入字符串的有效长度 (最后的回车键不计算在内)。用户程序可以从缓冲区的 第.7】设有数据段定义如下: d SEGMENT buf DB 10,11 DUP(0) d ENDS

汇编实验报告--输入输出程序设计

汇编实验报告--输入输出程序设计

实验六输入输出程序设计学生姓名:何茂杰学号:2010305104 专业班级:计算机本科一班指导老师:文远熔实验日期:实验成绩:一、实验目的1) 掌握输入输出程序的编写方法。

2) 熟悉系统功能调用的方法。

3) 熟悉动画程序的编写方法。

二、实验内容1)在CRT上每隔一秒连续显示字符0-9。

编程提示2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。

三.实验设计及步骤为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。

为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。

为了保证输出是十进制,增量后用DAA调整指令。

由于输出为一位十进制数,用AND 0FH指令屏蔽高4位。

1)在CRT上每隔一秒连续显示字符0-9。

2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。

3)编制在屏幕上画线的子程序,调用该子程序画一矩形。

4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。

5)创建一磁盘文件,保存从键盘输入的字符串。

6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。

7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。

8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。

四.实验结果执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格:0 1 2 3 4 5 6 7 8 9 ……执行程序EXAM5-2·EXE,输入HELLO↙屏幕上显示结果:*** HELLO ***五.实验心得:通过这次的实验又进一步加深了对汇编的理解以及它的整个运行过程,能熟练掌握它的运行过程,也能够看懂一些基本的顺序设计的汇编程序,能设计出简单的顺序汇编。

刚上机时只想按照老师给出的提纲,把缺省的部分照上面给出的提示简单修改后拷贝,可是当程序出错时便不知道哪里的问题也不会修改,最后静下心仔细看程序后理解了,很快就做出来了。

汇编语言程序设计第8章输入输出程序设计

汇编语言程序设计第8章输入输出程序设计
20
中断命令寄存器20H
8.3.2 中断向量表 (293页)
00000 类型0的(IP) 类型0的(CS) 00004 类型1的(IP) 类型1的(CS) 中断向量—中断处理程序的入口 地址(段址):(偏址)
4*N
类型N的(IP) 类型N的(CS)
用户可利用保留的中断类型号 扩充自己需要的中断功能。
29
(4) 优先级特殊循环方式
特点:该循环方式和优先级自动循环
方式基本相同,不同点仅在于可以根 据用户要求将最低优先级赋于某一中 断源。
30
结束中断处理的方式
当某个中断源得到CPU的中断服务后,使中断
服务寄存器的相应位置1,表示CPU正在为该 中断源服务。 如果CPU正在为某个中断源服务时,此时产生 了比该中断源级别高的中断申请,CPU将暂时 中止低级别的中断服务,转到高级别的中断服 务,同时也使高级别的中断源在中断服务寄存 器的相应位置1, 所以中断服务寄存器的状态反应出当前CPU正 在为哪个中断源服务和还未完成哪个中断源的 服务,为中断优先级裁决器的裁决提供了依据。
32
(1) 中断自动结束方式 特点:中断服务寄存器的相应位清零是 由硬件自动完成的。 使用环境:中断自动结束方式只能适用 于有一块8259A,并且各级中断不会发生 嵌套的情况。
33
(2) 一般中断结束方式 特点:该方式是通过用软件方法发一中 断结束命令,使当前中断服务寄存器中 级别最高的置1位清0。 使用环境:使用一般的中断结束方式只 能应用于全嵌套方式下,而不能用于优 先级自动循环方式和优先级特殊循环方 式。因为一般中断结束方式结束的中断 是尚未处理完的级别最高的中断。若中 断级别改变,会使整个中断过程混乱。
17

汇编语言程序设计 第6章输入输出程序设计

汇编语言程序设计 第6章输入输出程序设计

– OUT PORT, AL – OUT DX, AL
– OUT PORT, AX – OUT DX, AX
2014-1-2
;字节输出 ;字节输出
;字输出 ;字输出
第6章 输入/输出程序设计
11
安徽工业大学
网络工程系
《汇编语言程序设计》
• 8088/8086的端口有64K个,无需分段,设 计有两种寻址方式 • 直接寻址:只用于寻址00H ~ FFH前256个 端口,操作数i8表示端口号 • 间接寻址:可用于寻址全部64K个端口, DX寄存器的值就是端口号 • 对大于FFH的端口只能采用间接寻址方式
接口电路占用的I/O端口有两类编排形式
(1)统一编址: I/O地址空间独立于存储地址空间 如8086/8088 (2)独立编址: 它们共享一个地址空间 如M6800
2014-1-2
第6章 输入/输出程序设计
8
安徽工业大学
网络工程系
《汇编语言程序设计》
第6章:⑴ I/O端口单独编址 FFFFF
• 优点:
• 优点:
– 不需要专门的I/O指令 – I/O数据存取与存储器数 据存取一样灵活
FFFFF 内存 部分 存储器空间 I/O 部分
• 缺点:
– I/O端口要占去部分存储 器地址空间 – 程序不易阅读(不易分 清访存和访问外设)
00000
2014-1-2
第6章 输入/输出程序设计
10
安徽工业大学
网络工程系
安徽工业大学
网络工程系
《汇编语言程序设计》
第6章:OUT指令实例(向300H端口输出一个字节)
;唯一的方法:间接寻址,字节量输出 mov al,bvar ;bvar是字节变量 mov dx,300h out dx,al
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1南北向、东西向交替开通,即先“南北向绿灯则东西向红灯”,延时示意后则“南北向红灯则东西向绿灯”;
2某方向由绿灯切换成红灯前,先熄灭绿灯,继而闪烁黄灯5次,之后才打开红灯;
3②过程之后,方可打开另一方向绿灯。
实验记录
带注释的源代码:
教师评议
成绩评定:指导教师签名:
四川大学计算机学院、软件学院
实验报告
学生姓名
学号
班级
学生专业
学院
Hale Waihona Puke 课程名称汇编语言程序设计(第八次)
实验时间
2010年月日
实验项目
输入输出程序设计
报告撰写时间
2010年月日
实验目的
练习输出控制的简单编程
实验环境
1X86系列桌面系统;
2Emu8086。
实验内容
对Emu8086的交通灯例子traffic_lights.asm进行改造,要求如下:
相关文档
最新文档