在PC机上用汇编语言实现简单的人机交互程序_第1页
在PC机上用汇编语言实现简单的人机交互程序_第2页
在PC机上用汇编语言实现简单的人机交互程序_第3页
在PC机上用汇编语言实现简单的人机交互程序_第4页
在PC机上用汇编语言实现简单的人机交互程序_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 在PC机上用汇编语言实现简单的人机交互程序实验器材 电脑实验思路 人机交互,即电脑与人的交流,电脑与人之间的对话也是其中一种,我实现人机交互是电脑与人的简单对话,教人用设置好的程序画图。流程图实验步骤 1 将下面的程序输入电脑的asm文件中SSEG SEGMENT PARA STACK 'stack'db 60h dup('sseg.') ;初始化堆栈大小为100SSEG ENDSDSEG SEGMENT buf1 db 'Hello!$' buf2 db 'Hi!$' buf3 db 'Do you love pict

2、ure?$' buf4 db 'Please choose yes or no.$' buf5 db 'You can try it now.$' buf6 db 'You are impolite!$' buf7 db 'You are polite! I like it!$' buf8 db 'You made an error!$' buf9 db 'Please choose again!$' buf10 db 'I think I can not talk more wit

3、h you!$' buf11 db 'Bye-Bye!$' buf12 db 'If you want turn up, please press w !$' buf13 db 'If you want turn down, please press s !$' buf14 db 'If you want turn left, please press a !$' buf15 db 'If you want turn right, please press d !$' ;定义输出的字符串 DSEG ENDS

4、ESEG SEGMENT;附加段:在此处添加程序所需的数据ESEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:ESEG, ss:SSEGMAIN PROC FAR ;主程序入口mov ax, dsegmov ds, axmov ax,esegmov es, ax ;输入端口设置 begin: lea dx,buf1 ;将buf1 的 首地址传给dx mov ah,9int 21h ;输出buf1的内容 mov dl,0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行

5、后,光标人在第一列 mov ah,07 int 21h ;输入字符 mov bl,al cmp bl,104 ;比拟字符与h 得ascall码值 jnz l1 ;判断 为h的话 程序继续执行 不为h的话 程序跳转到了l1 lea dx,buf2 ;将buf2 的 首地址传给dx mov ah,9 int 21h ;输出buf2的内容 mov dl,0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在第一列 lea dx,buf7 ;将buf7 的 首地址传给dx mov ah,9 int 21h ;输

6、出buf7的内容 jmp start ;跳转到start程序 l1: lea dx,buf6 ;将buf6的 首地址传给dx mov ah,9 int 21h ;输出buf6的内容 mov dl,0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在第一列 start: lea dx,buf3 ;将buf3的 首地址传给dx mov ah,9int 21h ;输出buf3的内容 lea dx,buf4 ;将buf4 的 首地址传给dx mov ah,9int 21h ;输出buf4的内容 mov dl,

7、0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在第一列 choose: mov ah,07 int 21h ;无回显方式输入字符 mov bl,al cmp bl,110 ;比拟字符与n得ascall码值 jz l2 ;判断不 为的话 程序继续执行 为n的话 程序跳转到了l2 cmp bl,121 ;比拟字符与y 得ascall码值 jz l3 ;判断 不为的话 程序继续执行 为y的话 程序跳转到了l3 lea dx,buf8 ;将buf8 的 首地址传给dx mov ah,9 int 21h ;

8、输出buf8的内容 lea dx,buf9 ;将buf9 的 首地址传给dx mov ah,9 int 21h ;输出buf9的内容 mov dl,0ah mov ah,02 int 21h ; 输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在 第一列 jmp choose ;跳转到choose程序l2: lea dx,buf10 ;将buf10 的 首地址传给dx mov ah,9 int 21h ;输出buf10的内容 lea dx,buf11 ;将buf11 的 首地址传给dx mov ah,9 int 21h ;输出buf11的内容

9、mov dl,0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在第一列 jmp exit ;跳转到exit程序l3: lea dx,buf5 ;将buf5 的 首地址传给dx mov ah,9 int 21h ;输出buf5的内容 mov dl,0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在第一列 lea dx,buf12 ;将buf12 的 首地址传给dx mov ah,9 int 21h ;输出b

10、uf12的内容 mov dl,0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在第一列 lea dx,buf13 ;将buf13的 首地址传给dx mov ah,9 int 21h ;输出buf13的内容 mov dl,0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在第一列 lea dx,buf14 ;将buf14的 首地址传给dx mov ah,9 int 21h ;输出buf14的内容 mov dl

11、,0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在第一列 lea dx,buf15 ;将buf15 的 首地址传给dx mov ah,9 int 21h ;输出buf15的内容 mov dl,0ah mov ah,02 int 21h ;输出换行 mov dl,0dh mov ah,02 int 21h ;输出回车,实现换行后,光标任在第一列 mov bh,00 mov ah,03 int 10h ;得到当前光标的位置dh为行位置dl为列位置 mov ch,dh ;将 行位置传给ch jmp pi

12、cture ;跳转到picture程序 picture: mov ah,07 int 21h ;无回显方式输入字符 cmp al,wjz up cmp al,'s' jz down cmp al,'a' jz left cmp al,'d' jz right jmp picture ; 跳回到picture程序up: sub dh,1 mov bh,00 mov dh,dh mov ah,2 int 10h mov bh,00 mov al,'|' mov ah,0ah mov cx,1 int 10h jmp picture ;

13、 跳回到picture程序 down: add dh,1 mov bh,00 mov dh,dh mov ah,2 int 10h mov bh,00 mov al,'|' mov ah,0ah mov cx,1 int 10h jmp picture ; 跳回到picture程序left: sub dl,1 mov bh,00 mov dl,dl mov ah,2 int 10h mov bh,00 mov al,'-' mov ah,0ah mov cx,1 int 10h jmp picture ; 跳回到picture程序right: add dl,1 mov bh,00 mov dl,dl mov ah,2 int 10h mov bh,00 mov al,'-' mov ah,0ah mov cx,1 int 10h jmp picture ; 跳回到picture程序exit: mov ah,1 int 21hmov ax, 4c00h int 21hMAIN E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论