汇编语言编程实现:从键盘输入 1~3 中任意一个数,在屏幕分别显示“10K”“20K”“30K”,如果输 入其它字符,则显示“*”。
时间: 2024-12-18 21:38:51 浏览: 3
汇编语言,用二进制显示从键盘输入的一个字符的ASCII码
汇编语言是一种低级编程语言,它直接操作计算机硬件,对于这个需求,我们通常会用到条件转移指令和循环结构。以下是一个简单的x86汇编示例(假设使用Intel x86体系),使用BIOS中断服务01H获取用户输入并处理:
```assembly
section .data
input_prompt db '请输入1~3:', 0
option_1 db '10K', 0Ah, ' ', '$'
option_2 db '20K', 0Ah, ' ', '$'
option_3 db '30K', 0Ah, ' ', '$'
invalid_input db '*', 0Ah, ' *', 0
section .bss
user_input resb 1 ; 用户输入暂存区
section .text
global _start
_start:
; 显示提示信息
mov ah, 09h
lea dx, [input_prompt]
int 21h
; 读取用户输入
mov ah, 01h ; BIOS中断 01H: Read character from keyboard
int 21h ; AX = ASCII code of the key pressed
mov [user_input], al ; 存储到内存
; 根据输入判断并打印相应字符串
cmp byte [user_input], '1'
je print_option_1
cmp byte [user_input], '2'
je print_option_2
cmp byte [user_input], '3'
je print_option_3
jmp print_invalid
print_option_1:
lea dx, [option_1]
call print_string
jmp end_program
print_option_2:
lea dx, [option_2]
call print_string
jmp end_program
print_option_3:
lea dx, [option_3]
call print_string
jmp end_program
print_invalid:
lea dx, [invalid_input]
call print_string
print_string:
mov ah, 09h ; BIOS中断 09H: Write string to console
int 21h
ret
end_program:
mov eax, 1 ; Exit system call number
xor ebx, ebx ; Return code 0
int 0x80 ; Call kernel
; 省略了函数的具体实现,因为这涉及到系统调用、中断处理等细节,这里仅给出思路框架。
阅读全文