汇编语言键盘钢琴程序 5C
 DATA SEGMENT 

KEYS DB 'QWERTYU','ASDFGHJ','ZXCVBNM'
FREQ DB 131,147,165,175,196,220,247
WELC DB 'Welcome to "Piano of Keyboard"',0DH,0AH,0DH,0AH,'$'
EXPL DB 'Explanation:', 0DH,0AH,'Key:QWERTYU-Low Notes 1 2 3 4 5 6 7 ', 0DH,0AH,'Key:ASDFGHJ-Middle Notes 1 2 3 4 5 6 7 ',0DH,0AH,'Key:ZXCVBNM-High Notes 1 2 3 4 5 6 7 ', 0DH,0AH, 'Please Note Your Caps Lock Truned On', 0DH,0AH
ESCQ DB 0DH,0AH,'Please play:',0DH,0AH,'(You can Type "ESC" to exit)', 0DH,0AH,0DH,0AH,'$'
LAST DB 0DH,0AH,'Welcome again!','$'
REMI DB 'Reminder:Please play the Key:"QWERTYU-ASDFGHJ-ZXCVBNM"', 0DH,0AH,'$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE DS:DATA

START: MOV AX,DATA

   MOV    DS,AX           ;初始化数据区
   LEA     DX,WELC 

   MOV    AH,9                                      
   INT      21H             ;显示提示语句  

INPUT: MOV AH,7

   INT      21H             ;不回显输入键盘的KEY         
   CMP     AL,1BH          ;判断输入KEY是否为“ESC” 

   JZ       EXIT            ;若输入KEY为“ESC”则跳转到退出EXIT 
   LEA     DI,KEYS         
   MOV    CX,21           

FIND: CMP AL,[DI]

   JZ       SING            ;找到KEY相对应的偏移地址DI则跳转至SING         
   INC      DI  

   LOOP    FIND            ;根据输入KEY的ASCII码找到相对应的偏移地址          

   LEA      DX,REMI         
   MOV     AH,9 

   INT       21H            ;输入的KEY不正确,显示提醒请输入正确的KEY           
   JMP      INPUT          ;不是正确的输入KEY,则跳转至INPUT   

SING: CALL FIFRE ;进入计算KEY所对应频率值的子程序

CALL SOUND ;进入根据频率值发出音调的子程序
JMP INPUT ;发声完毕后跳转至INPUT

EXIT: LEA DX,LAST

MOV AH,9

   INT       21H            ;显示退出时的字幕             
   MOV      AX,4C00H 

   INT       21H            ;返回DOS          

FIFRE PROC ;计算KEY所对应频率值的子程序

MOV DL,1 ;标记频率基准值的倍数值

LEA BX,KEYS

   SUB       DI,BX         ;计算偏移地址相对与首地址的值          
   CMP       DI,6 
   JNA       SOU           ;属于低音直接跳转至SOU         
   SUB       DI,7           ;属于中音,将偏移地址减7          
   ADD      DL,1           ;标记倍数值加倍为2          
   CMP      DI,6 

   JNA       SOU           ;属于中音,跳转至SOU 

   SUB       DI,7           ;属于高音,将偏移地址再减7 
   ADD      DL,2           ;标记倍数值再加倍为4          

SOU: MOV AX,DI ;将被换码给AL

LEA BX,FREQ

XLAT

   MUL     DL             ;频率基准值乘以倍数得到KEY所对应的频率值          
   MOV     BX,AX          
   RET 

FIFRE ENDP

SOUND PROC ;根据频率值发出音调的子程序

MOV AL,0B6H

   OUT      43H,AL        ;向8253的43H写入控制字
   MOV     DX,12H          
   MOV     AX,348CH     

   DIV      BX             ;计算计数初值N          
   OUT     42H,AL               
   MOV     AL,AH 

   OUT     42H,AL          ;向通道2端口42H写入计数初值N   

   IN       AL,61H          
   OR       AL,3        

   OUT     61H,AL          ;打开扬声器    

   CALL    DELAY          ;进入延时子程序
   IN      AL,61H          
   AND    AL,0FCH 

   OUT     61H,AL          ;关闭扬声器
   RET 

SOUND ENDP

DELAY PROC ;延时时间子程序

PUSH BX

PUSH CX

MOV BX,4000

DY1: MOV CX,0FFFH

DY0: LOOP DY0

DEC BX

JNZ DY1 ;利用LOOP循环和跳转指令进行双循环

POP CX
POP BX

RET

DELAY ENDP

CODE ENDS

END START
在DOSBOX里运行时无论按哪个键它都没办法弹图片说明
一直重复显示着那句话!!
求助呀!

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
汇编语言——Intel汇编语言程序设计(第5版)中文版

学会汇编语言的话,Intel汇编语言程序设计(第5版)中文版这本书怎么样呢

新手,汇编语言乘法程序

看不太懂这个程序里寄存器怎么存数据的,进位是怎么做到的,以及最后结果是怎么拼的,![图片说明](https://img-ask.csdn.net/upload/201610/10/1476079233_254266.png)

汇编语言从键盘首先输入6个互不相同的十进制数(数值范围为11~123),

从键盘首先输入6个互不相同的十进制数(数值范围为11~123),每个数间以空格间隔,接着换行输入学生本人的学号,从左至右顺序将其切分为4组,每组形成1个两位十进制数。然后将这10个数从大到小排序,从排序后的数列中截取排列位置第2到7的数(排列位置从1开始计数),计算sum/(i+7),其中sum是截取的6个数的总和,i是学生本人学号中最末位的数字。请回车换行后以十进制形式输出排序后的6个数,每个数间以空格间隔,并再次换行后以十进制形式输出计算出的结果(结果仅保留小数点后1位数字,舍入方式采用4舍5入)。要求在输入信息和输出信息前均有提示,结果呈现以回车为准。(例如: Input: 73 873419 2568; Student id:1 8075612; Sort resultis: 73 68 56 3425 19; The final resultis: 30.6) 。

汇编语言程序如何用word录入源程序?

汇编语言程序如何用word录入源程序?也就是用microsoft word编辑源程序代码,如何使它成为.asm文件,并在DOS系统下编译等。

关于汇编语言中断程序的问题

中断错误实例,中断类型码是0,也就是div溢出,根据书本的课后的习题,我做了之后, 来测试,发现,在发生div溢出的时候,为什么打在屏幕上的字符居然出现在第一个命令执行后的ax中,这是怎么搞的。第一幅图片是正常显示,默认是divide flow,第二幅图片是我自定义,但是提示信息却不在下面,而是在中间,下面的代码是第二幅图的自定义代码,第三幅图中断程序返回来的信息为什么覆盖在了第一个-t后的ax中呢? ![![![图片说明](https://img-ask.csdn.net/upload/201506/16/1434463613_369280.jpg) ![图片说明](https://img-ask.csdn.net/upload/201506/16/1434463708_655849.jpg) ![图片说明](https://img-ask.csdn.net/upload/201506/16/1434463662_69658.jpg) ``` assume cs:code code segment start: mov ax,cs mov ds,ax mov si,do0 mov ax,0 mov es,ax mov di,200h mov cx,offset do0end-offset do0 cld rep movsb mov ax,0 mov es,ax mov word ptr es:[0],200h mov word ptr es:[2],0 mov ax,4c00h int 21h do0: jmp short do0start db "Helloyouarer!" do0start: mov ax,cs mov ds,ax mov si,202h mov ax,0b800h mov es,ax mov di,12*160+36*2 mov cx,13 s: mov al,[si] mov es:[di],al inc si add di,2 loop s mov ax,4c00h int 21h do0end:nop code ends end start ```

关于汇编语言与C/C++的混合程序叙述正确的是?

A. 汇编程序,C/C++程序之间可以互相调用 B. C/C++代码中可以嵌入汇编指令 C. 在汇编程序和C/C++的程序之间可以进行变量的互访 D. A、B、C都对

汇编语言子程序的调用与返回

定义一个子程序:回车换行,主程序:从键盘接收一个字符串,调用子程序,继续从键盘接收一个字符,调用子程序,把输入的字符串用第二次输入的字符截断,显示截断后的结果。

用汇编语言画图,汇编语言菜鸟求大家帮忙。感激不尽!

作为初学汇编语言的菜鸟,想请教一下怎么用汇编语言画6*6的矩形呢?![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/32.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/32.gif)![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/32.gif)

如果用汇编语言编程俄罗斯方块

马上就要课程设计了,要求用汇编语言编俄罗斯方块,哪位大神能给出程序啊,多谢了!!!

一个基础的汇编语言分段函数的编写

在数据段中有两个字节变量x,y 按下式计算y值: y=1 , x>0 y=0, x=0 y=-1, x<0 并将结果存在y变量中,要求编写完整程序(使用汇编语言)

汇编语言与c语言之间有哪些关系

关于汇编需要那也基础,不知道具体汇编语言的用途,汇编语言和c语言之间有哪些关联了

如何在汇编语言中调用c语言标准库函数sin()

⑴ 编写一个汇编语言递归子程序(子模块)求斐波那契数列,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2,n∈N*);(输入一个数字,若该数字在数列中,则输出N,若不在数列中,输出“error”) ⑵ 编写一个计算Z=sin(2n+1)*F(n)的汇编语言主模块,其中sin(x)调用C语言的函数库、F(n)通过调用⑴中的模块实现,输入n。显示格式为: Z= 使用调试程序观察参数传递及堆栈平衡情况。

三个汇编语言的问题 ,刚刚开始学汇编,很困惑

1 ,机器码和汇编指令是怎么对应的? 2,看图,从内存20000H单元开始存放的机器指令为什么是那三个?为什么不是一个或者两个? 3 看图 为什么输出错误?![图片](https://img-ask.csdn.net/upload/201704/08/1491652456_272509.jpg)![图片](https://img-ask.csdn.net/upload/201704/08/1491652464_823235.jpg)

急!!!汇编语言求超过25项的斐波那契数列

汇编语言求超过25项的斐波那契数列汇编语言求超过25项的斐波那契数列汇编语言求超过25项的斐波那契数列

菜鸟求指教,程序采用汇编语言编写,关于汇编语言AT89C51

![图片说明](https://img-ask.csdn.net/upload/202004/20/1587353073_65371.png) 若fosc=6MHz,编写周期T=2000us,占空比为25%的矩形波。要求采用定时器中断方式设计,程序采用汇编语言编写。我这么写感觉不对啊,有人能帮我改一下吗,不知道错在哪里,怎么改。

汇编程序判断输入字符

汇编: 编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为大写A-Z则显示“C(大写C)”,若为a-z字符,均显示“c(小写c)”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。

编写一个完整的汇编语言程序,实现两个32位的数相加,结果以十六进位制显示出来。

因为刚刚学汇编希望大佬能详细写一下代码 编写一个完整的汇编语言程序,实现两个32位的数相加,结果以十六进位制显示出来。

emu8086汇编语言课程设计

用emu8086汇编语言设计一个简单的小游戏,程序越简单越好,希望代码不要太长,跪求大神,不胜感激……,

用visual studio编写汇编语言 输入自己名字的拼音 倒着输出并显示输入了多少个字母

用visual studio编写汇编语言 输入自己名字的拼音 倒着输出并显示输入了多少个字母例如 input: Zhang San output: naS gnahZ length: 8 求包含头文件的完整程序! ⚠️汇编语言! ⚠️能复制过去直接用visual studio运行! 感谢!

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解! 目录 博客声明 大数据了解博主粉丝 博主的粉丝群体画像 粉丝群体性别比例、年龄分布 粉丝群体学历分布、职业分布、行业分布 国内、国外粉丝群体地域分布 博主的近期访问每日增量、粉丝每日增量 博客声明 因近期博主写专栏的文章越来越多,也越来越精细,逐步优化文章。因此,最近一段时间,订阅博主专栏的人数增长也非常快,并且专栏价

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

MySQL性能优化(五):为什么查询速度这么慢

前期回顾: MySQL性能优化(一):MySQL架构与核心问题 MySQL性能优化(二):选择优化的数据类型 MySQL性能优化(三):深入理解索引的这点事 MySQL性能优化(四):如何高效正确的使用索引 前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必不可少的。但这些还完全不够,还需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再...

用了这个 IDE 插件,5分钟解决前后端联调!

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |李海庆我是一个 Web 开发前端工程师,受到疫情影响,今天是我在家办公的第78天。开发了两周,...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!

网上很多的文章和帖子中在介绍秒杀系统时,说是在下单时使用异步削峰来进行一些限流操作,那都是在扯淡! 因为下单操作在整个秒杀系统的流程中属于比较靠后的操作了,限流操作一定要前置处理,在秒杀业务后面的流程中做限流操作是没啥卵用的。

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

Java14 新特性解读

Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

疫情后北上广深租房价格跌了吗? | Alfred数据室

去年3月份我们发布了《北上广深租房图鉴》(点击阅读),细数了北上广深租房的各种因素对租房价格的影响。一年过去了,在面临新冠疫情的后续影响、城市尚未完全恢复正常运转、学校还没开学等情况下...

面试官给我挖坑:a[i][j] 和 a[j][i] 有什么区别?

点击上方“朱小厮的博客”,选择“设为星标”后台回复&#34;1024&#34;领取公众号专属资料本文以一个简单的程序开头——数组赋值:int LEN = 10000; int[][] ...

又一起程序员被抓事件

就在昨天互联网又发生一起让人心酸的程序员犯罪事件,著名的百度不限速下载软件 Pandownload PC 版作者被警方抓获。案件大致是这样的:软件的作者不仅非法盗取用户数据,还在QQ群进...

应聘3万的职位,有必要这么刁难我么。。。沙雕。。。

又一次被面试官带到坑里面了。面试官:springmvc用过么?我:用过啊,经常用呢面试官:springmvc中为什么需要用父子容器?我:嗯。。。没听明白你说的什么。面试官:就是contr...

太狠了,疫情期间面试,一个问题砍了我5000!

疫情期间找工作确实有点难度,想拿到满意的薪资,确实要点实力啊!面试官:Spring中的@Value用过么,介绍一下我:@Value可以标注在字段上面,可以将外部配置文件中的数据,比如可以...

Intellij IDEA 美化指南

经常有人问我,你的 IDEA 配色哪里搞的,我会告诉他我自己改的。作为生产力工具,不但要顺手而且更要顺眼。这样才能快乐编码,甚至降低 BUG 率。上次分享了一些 IDEA 有用的插件,反...

【相亲】96年程序员小哥第一次相亲,还没开始就结束了

颜值有点高,条件有点好

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

一图看完本文 一、 计算机网络体系结构分层 计算机网络体系结构分层 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。 二、 TCP/IP 基础 1. TCP/IP 的具体含义 从字面意义上讲,有人可能会认为...

腾讯面试题: 百度搜索为什么那么快?

我还记得去年面腾讯时,面试官最后一个问题是:百度/google的搜索为什么那么快? 这个问题我懵了,我从来没想过,搜素引擎的原理是什么 然后我回答:百度爬取了各个网站的信息,然后进行排序,当输入关键词的时候进行文档比对……巴拉巴拉 面试官:这不是我想要的答案 我内心 这个问题我一直耿耿于怀,终于今天,我把他写出来,以后再问,我直接把这篇文章甩给他!!! 两个字:倒排,将贯穿整篇文章,也是面试官...

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问