利用DOS系统功能调用编写汇编程序,在屏幕上显示自己学号的后4个数字符号。例如,你的学号如果是20191234,则在屏幕上显示出‘1234’。具体要求如下:
(1)编写出完整的汇编语言程序;
(2)利用宏汇编程序MASM和连接程序LINK对所编写的程序进行汇编和连接,生成可执行文件,并在DOS下运行程序。
(3)打印出相应的列表文件(后缀lst的文件)清单,并对调试运行结果进行截图,以证明程序调试成功。
利用DOS系统功能调用编写汇编程序,在屏幕上显示自己学号的后4个数字符号
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-08-10 02:21关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
由于您没有提供具体的汇编语言环境,我将为您提供一个基于MS-DOS的示例程序,该程序使用了宏汇编程序MASM和链接程序LINK来实现屏幕显示功能。此外,我还将提供一个简单的调试截图。
步骤 1: 编写汇编程序
section .data prompt db '请输入您的学号: ', 0 number db 4 dup ('$') section .bss screen resd 8 section .text global _start _start: ; 输入学号并处理错误 mov eax, 3 ; 打印屏幕指令 mov ebx, 1 ; 输出设备(标准输出) mov ecx, prompt ; 指向提示字符串的指针 int 0x80 ; 调用打印机函数 ; 提供一个输入字段 mov eax, 4 ; 获取屏幕缓冲区指令 mov ebx, 1 ; 输出设备(标准输出) mov ecx, number ; 指向要填充的内存区域的指针 mov edx, 4 ; 字符数组大小 int 0x80 ; 调用键盘输入函数 ; 检查输入的有效性 cmp [screen], '$' je display_number display_number: ; 显示学号 mov eax, 4 ; 设置屏幕缓冲区指令 mov ebx, 1 ; 输出设备(标准输出) mov ecx, number ; 指向要显示的内存区域的指针 mov edx, 4 ; 字符数组大小 int 0x80 ; 调用键盘输入函数 exit: ; 清除屏幕缓冲区 mov eax, 35 ; 清屏指令 mov ebx, 1 ; 输出设备(标准输出) int 0x80 ; 调用打印机函数 ; 结束进程 mov eax, 1 ; 程序结束标志 xor ebx, ebx ; 返回值为0 int 0x80 ; 调用系统调用 ; 连接和解译程序 .link: ; 连接到MASM和LINK call link_dos call main_dos .link.dos: ; 在MASM中连接和编译程序 call masm_compile main_dos: ; 在DOS环境下运行程序 call dos_run步骤 2: 调试截图
由于我无法直接查看或提供截图,请尝试以下步骤:
- 将上述汇编代码保存到一个文件中。
- 使用MASM和LINK编译这个文件。
- 执行生成的可执行文件。
- 运行程序时,确保有足够的时间让程序完成并打印内容。
- 从控制台查看输出,确认是否正确显示了学号的后四位。
请注意,这只是一个基本示例,实际应用可能需要更复杂的输入验证、异常处理以及优化性能等额外考虑。
解决 无用评论 打赏 举报