汇编
文章平均质量分 51
StellaY
这个作者很懒,什么都没留下…
展开
-
汇编:输入输出
预备知识 乐曲简谱中的每个音符及其节拍,在微机中对应了扬声器的发声频率和持续时间。其中简谱音符与扬声器的发声频率的对应关系见下表: 如何使 PC 机的扬声器发出指定频率和指定时间长度的声音?下面简单介绍一下 PC 机的发声原理: IBM-PC 系列机的主机箱装有一个小扬声器,系统板上的定时器 8253(或 8254)利用工作方式3 产生一定频率信号,通过可编程的并行外围接口芯片 8255(或 8255A)控制其发音。扬声器的控制驱动电路如下图所示。 可编程的并行接口芯片 8255 有三个原创 2022-05-18 12:34:48 · 1815 阅读 · 2 评论 -
汇编:系统调用
试设计一程序,该程序从键盘输入一个字符串,输入的字符串最大允许 15 个字符且以回车字符结束(15 个字符含回车符)。同时,如果输入的字符串中有数字字符,则将数字字符删除,并新起一行显示处理后的字符串。 以下是定义好的数据段和堆栈段: data segment maxlen db 15;0AH 子功能入口参数,指定最大字符数 inputlen db 0;0AH 子功能出口参数,返回实际输入的字符数 str1 db 15 dup(0);0AH 子功能的字符串缓存区 str2 db 15 dup(0);09H原创 2022-05-18 12:33:45 · 464 阅读 · 0 评论 -
汇编:子程序
完成两个长补码的加法(有符号数加法),其中两个长补码的长度是相同的,并且采用低地址存放低位,高地址存放高位的方式存储。对于加法功能,使用子程序实现,两个长补码的起始地址、长补码的长度(以字节为单位)、运算结果的起始地址均由主程序以入口参数的形式传递给子程序。 注意,参数传递方式必须采用堆栈传递方式。 以下是定义好的数据段和堆栈段: data segment var1 db 92h, 95h, 12h, 71h, 08h, 27h, 92h, 0c3h ;变量 var1 保存长度为 8 个字节的有符号数 1原创 2022-05-18 12:33:11 · 671 阅读 · 0 评论 -
汇编:具有多重循环结构和分支结构的汇编程序
假设有一个字类型的数值 arry1,试编写程序统计 arry1 数值及其后若干数值,在字单元中存储时每个数据中含“0”数据位的个数,并将统计结果保存在 res1 数组中。数据段的代码定义如下: data segment arry1 dw 223,4037,5635,8226,11542,14430,45257,811 len equ $-arry1 res1 db len/2 dup(0) data ends 注:可结合 shl(或 shr)指令和条件转移指令来实现对字节数据中“0”的计数。(提示:使用原创 2022-05-18 12:32:22 · 543 阅读 · 0 评论 -
汇编:寻址方式在结构化数据访问中的应用
要求 将 data 段中的数据按如下格式写入到 table 段中,并计算 21 年中的人均收入(取整),结果也按照下面的格式保存在 table 段中。 注 1:实验中需要进行 21 次类似操作,故需要使用 Loop 指令来实现循环结构,循环次数默认存放在 cx 寄存器中。例如,要计算 2 的 20 次方,其具体格式如下: mov ax, 2 mov cx, 19 s: add ax,ax loop s 注 2:计算人均收入需要使用 div 指令。Div 指令格式如下: Div 寄存器/内存单元(.原创 2022-05-18 12:31:30 · 480 阅读 · 0 评论