汇编语言int 21H
时间: 2023-08-21 15:08:52 浏览: 106
汇编语言中的int 21H是一个中断指令,用于调用DOS系统的功能。通过设置寄存器AH的值来选择不同的功能,然后使用int 21H指令触发相应的中断子程序。在你提供的代码中,使用了int 21H的2号功能,即将要输出的字符放入DL寄存器中,然后通过int 21H指令进行输出。你观察到每次使用完2号功能后,AL寄存器的值会变为DL寄存器的值。这是因为在2号功能中,AL寄存器并没有被使用到,而DL寄存器被用来存储要输出的字符。因此,AL寄存器的值会被DL寄存器的值覆盖。\[1\]
在你提供的第二段代码中,如果删除了中间的int 21H指令,那么输出的结果应该是40,因为在这段代码中,AL寄存器的值被设置为30h,然后通过mov指令将AL的值赋给DL寄存器,最后通过int 21H指令输出DL寄存器的值。因此,如果删除了中间的int 21H指令,DL寄存器的值仍然是30h,输出的结果就是40。\[2\]
总结来说,汇编语言中的int 21H指令用于调用DOS系统的功能,通过设置寄存器的值来选择不同的功能。在使用2号功能时,要将要输出的字符放入DL寄存器中,而AL寄存器的值不会被使用到。如果删除了中间的int 21H指令,输出的结果会受到影响。\[1\]\[2\]
#### 引用[.reference_title]
- *1* *2* [汇编语言int 21h的2号功能使用后al值被改变](https://blog.csdn.net/qq_52151761/article/details/127271748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [【汇编】 INT 21H 命令](https://blog.csdn.net/mid_Faker/article/details/112271486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文