8086汇编语言基础学习(四)——汇编语言程序设计基础
<h1 style="text-align: center"><span style="color: rgba(0, 0, 0, 1)">8086汇编语言基础学习(四)——汇编语言程序设计基础</span></h1><h2><span style="font-size: 18pt; color: rgba(0, 0, 0, 1)">DOS中常用的系统调用:</span></h2>
<h3><span style="font-size: 14pt">1. 单字符输入并显示(<span style="color: rgba(255, 102, 0, 1)">01H</span>功能调用)</span></h3>
<ul>
<li><span style="font-size: 14pt">描述:<span style="background-color: rgba(204, 255, 255, 1)">从键盘输入一个字符的ASCII码送入寄存器AL</span>中,并送显示器显示。如果按下的是Ctrl+Break组合键,则终止程序执行。1号功能调用无须入口参数,出口参数在AL中</span></li>
<li><span style="font-size: 14pt">格式:</span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622111951373-54811375.png" alt="" width="195" height="86" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3><span style="font-size: 14pt"> 2. 单字符输入但不显示(<span style="color: rgba(255, 102, 0, 1)">08H</span>功能调用)</span></h3>
<ul>
<li><span style="font-size: 14pt">描述:同01H号功能调用,但字符不在屏幕上显示。</span></li>
<li><span style="font-size: 14pt">格式:</span></li>
</ul>
<p><span style="font-size: 14pt"><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622112043402-471431599.png" alt="" width="191" height="91" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></span></p>
<h3 style="text-align: left"><span style="font-size: 14pt"> 3. 在屏幕上显示一个字符(<span style="color: rgba(255, 102, 0, 1)">02H</span>功能调用)</span></h3>
<ul>
<li style="text-align: left"><span style="font-size: 14pt">描述:将置入DL寄存器中的字符在屏幕上显示输出</span></li>
<li style="text-align: left"><span style="font-size: 14pt">格式:</span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622112405681-268977348.png" alt="" width="200" height="98" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3 style="text-align: left"><span style="font-size: 14pt">4. 打印输出一个字符(<span style="color: rgba(255, 102, 0, 1)">05H</span>功能调用)</span></h3>
<ul>
<li style="text-align: left"><span style="font-size: 14pt">描述:将置入DL寄存器中的字符送打印机接口,打印输出</span></li>
<li style="text-align: left"><span style="font-size: 14pt">格式:</span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622112547872-649882529.png" alt="" width="190" height="100" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<ul>
<li style="text-align: left"><span style="font-size: 14pt">注意:打印和在屏幕上显示不是一回事</span></li>
</ul>
<h3 style="text-align: left"><span style="font-size: 14pt">5. 屏幕显示字符串(<span style="color: rgba(255, 102, 0, 1)">09H</span>功能调用)</span></h3>
<ul>
<li style="text-align: left"><span style="font-size: 14pt">描述:在屏幕上显示字符串</span></li>
<li style="text-align: left"><span style="font-size: 14pt">格式:</span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622112914496-818929156.png" alt="" width="307" height="94" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<ul>
<li style="text-align: left"><span style="font-size: 14pt">注意:</span>
<ul>
<li><span style="font-size: 14pt">待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。</span></li>
<li><span style="font-size: 14pt"><span style="background-color: rgba(204, 255, 255, 1)">应当将字符串首地址的段基址和偏移地址分别存入DS和DX寄存器中</span>。</span></li>
</ul>
</li>
</ul>
<h3><span style="font-size: 14pt">6. 字符串输入(<span style="color: rgba(255, 102, 0, 1)">0AH</span>功能调用)</span></h3>
<ul>
<li><span style="font-size: 14pt">描述:从键盘接收字符,并存放到内存缓冲区</span></li>
<li><span style="font-size: 14pt">格式: </span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622114318673-115825633.png" alt="" width="358" height="89" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<ul>
<li><span style="font-size: 14pt">注意:</span>
<ul>
<li><span style="font-size: 14pt">① 执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符0DH在内,不能为“0”值。第二个字节保留,在执 行程序完毕后存入输入的实际字符个数。从第三个字节开始存入从键盘上接收字符的ASCII码。若实际输入的字符个数少于定义的最大字符个数,则缓冲区其他 单元自动清0。若实际输入的字符个数大于定义的字符个数,其后输入的字符丢弃不用,且响铃示警,一直到输入回车键为止。整个缓冲区的长度等于最大字符个数 再加2。 </span></li>
<li><span style="font-size: 14pt">② 应当将缓冲区首地址的段基址和偏移地址分别存入DS和DX寄存器中。</span></li>
</ul>
</li>
</ul>
<h3><span style="font-size: 14pt">7. 返回DOS操作系统(<span style="color: rgba(255, 102, 0, 1)">4CH</span>功能调用)</span></h3>
<ul>
<li><span style="font-size: 14pt">描述:终止当前程序的运行,将控制权交还给DOS操作系统,屏幕上开始出现DOS提示符</span></li>
<li><span style="font-size: 14pt">格式:</span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622114756046-1920253580.png" alt="" width="168" height="67" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3><span style="font-size: 18.6667px">8. 直接输入 / 输出单字符(<span style="color: rgba(255, 102, 0, 1)">06H</span>功能调用)</span></h3>
<ul>
<li><span style="font-size: 18.6667px"> 描述:执行从键盘输入操作或者向屏幕显示操作,执行那个操作取决于DL的值</span></li>
<li><span style="font-size: 18.6667px">格式:</span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622115137046-620198247.png" alt="" width="255" height="82" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<ul>
<li><span style="font-size: 18.6667px">注意:</span>
<ul>
<li><span style="font-size: 14pt">① 当(DL)=0FFH时,执行键盘输入操作。若标志ZF=0,AL中放入字符的ASCII码;若标志ZF=1,表示无键按下。这种调用用来检测键盘是否有键按下,但不等待键盘输入。 </span></li>
<li><span style="font-size: 14pt">② 当(DL)≠0FFH时,表示将DL中内容送屏幕显示输出。</span></li>
</ul>
</li>
</ul>
<h3><span style="font-size: 14pt">9. 检查键盘状态(<span style="color: rgba(255, 102, 0, 1)">0BH</span>功能调用)</span></h3>
<ul>
<li><span style="font-size: 14pt">描述:检查键盘是否有被按下,若有则将AL = 0FFH,否则AL = 000H,对于利用键盘操作退出循环或使程序结束之类的操作来说,这种调用是很方便实用的。</span></li>
<li><span style="font-size: 14pt">格式:</span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622115852582-892799416.png" alt="" width="178" height="69" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3><span style="font-size: 14pt">10. 设置系统日期(<span style="color: rgba(255, 102, 0, 1)">2BH</span>功能调用)</span></h3>
<ul>
<li><span style="font-size: 14pt">描述:设置有效的年、月、日,当AL = 0时,设置成功,当AL = 0FFH时,设置失败</span></li>
<li><span style="font-size: 14pt">格式:</span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622115909345-536758174.png" alt="" width="178" height="148" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3><span style="font-size: 14pt">11. 设置系统时间(<span style="color: rgba(255, 102, 0, 1)">2DH</span>功能调用)</span></h3>
<ul>
<li><span style="font-size: 14pt">描述:设置有效的时间。当AL=0时,设置成功;当AL=0FFH时,设置失败。</span></li>
<li><span style="font-size: 14pt">格式:</span></li>
</ul>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622115928099-1528235635.png" alt="" width="177" height="157" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h2><span style="font-size: 18pt">表达式中的运算符:</span></h2>
<h3><span style="font-size: 14pt">1. 算术运算符</span></h3>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622120751651-1895752771.png" alt="" width="809" height="456" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3> <span style="font-size: 14pt">2. 逻辑运算符</span></h3>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622142035749-2021451958.png" alt="" width="753" height="228" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3><span style="font-size: 14pt"> 3. 关系运算符</span></h3>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622142155340-740297908.png" alt="" width="780" height="376" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3><span style="font-size: 14pt"> 4. 数据返回运算符</span></h3>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622142654858-782541881.png" alt="" width="846" height="252" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p> </p>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622142807382-83184718.png" alt="" width="891" height="319" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<h3><span style="font-size: 14pt"> 5. 属性运算表达式</span></h3>
<p><img src="https://img2023.cnblogs.com/blog/2928799/202306/2928799-20230622143107044-1280995179.png" alt="" width="779" height="307" loading="lazy" style="display: block; margin-left: auto; margin-right: auto"></p>
<p>参考:</p>
<blockquote>
<p>本文中的“表达式运算”一节来源于https://www.jianshu.com/p/ff9dd9ea1fc2一文,作者的见解十分到位,故直接搬运用作个人学习之用,侵删。</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/Tatsukyou/p/17497743.html
頁:
[1]