微机原理从键盘输入9个字符,找出ASII码值最大的字符
时间: 2023-11-06 18:05:39 浏览: 53
首先,我们需要将键盘输入的9个字符存储到内存中。可以使用 8086 汇编语言中的 `int 21h` 功能号为 0Ah 的 DOS 中断来实现。
下面是一个示例程序:
```
.model small
.stack 100h
.data
; 定义一个用于存储用户输入的字符的缓冲区
buffer db 9, 0
.code
main proc
; 设置 DS 寄存器指向数据段
mov ax, @data
mov ds, ax
; 将用户输入的字符存储到缓冲区中
mov ah, 0Ah
mov dx, offset buffer
int 21h
; 找出 ASCII 码值最大的字符
mov al, buffer
mov bl, al
mov cx, 8
cmp cx, 0
jz end_find_max
loop_find_max:
inc dx
cmp bl, [dx]
jnc continue_find_max
mov bl, [dx]
continue_find_max:
loop loop_find_max
end_find_max:
; 最大 ASCII 码值的字符存储在 BL 寄存器中
; 输出 BL 寄存器的值
mov ah, 02h
mov dl, bl
int 21h
; 程序结束
mov ah, 4Ch
int 21h
main endp
end main
```
上述程序的思路是先将用户输入的字符存储到 `buffer` 缓冲区中,然后逐个比较缓冲区中的字符的 ASCII 码值,找出最大的一个。最大的 ASCII 码值存储在 `BL` 寄存器中,可以通过 21h 功能号为 02h 的 DOS 中断输出到屏幕上。