汇编语言int 21h指令
时间: 2023-11-28 17:29:49 浏览: 93
在汇编语言中,int 21h 是一个中断指令,用于调用 DOS 系统功能。int 21h 中的 "21h" 表示要调用的功能号,不同的功能号代表不同的系统功能。例如,功能号 01h 表示显示一个字符,功能号 02h 表示显示一个字符串,功能号 09h 表示显示一个带有换行符的字符串等等。当程序执行 int 21h 指令时,会将控制权交给 DOS 系统,然后 DOS 系统会根据功能号执行相应的操作,最后将控制权交还给程序。
相关问题
汇编语言int 21H
汇编语言中的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 ]
汇编语言中int 21h
在汇编语言中,int 21h是一条中断指令,用于调用DOS系统的功能。具体来说,它可以实现文件读写、屏幕输出、键盘输入等操作。
当程序执行到int 21h指令时,CPU会暂停当前程序的执行,转而执行DOS系统中对应的功能。执行完毕后,CPU会返回到原来的程序继续执行。
需要注意的是,int 21h指令的具体功能由AH寄存器中的值决定。不同的值对应不同的功能。
阅读全文