用 INT 21H 的 1 号功能,输入一个字符串“Hello, world!”,存放在内存,然后倒序输出
时间: 2024-03-17 17:40:27 浏览: 55
好的,以下是汇编代码实现:
```
.model small
.stack 100h
.data
message db "Hello, world!",0
length equ $-message
output db length dup(0)
.code
start:
mov ax, @data
mov ds, ax
; 将 input 字符串写入内存
mov ah, 0ah
lea dx, message
int 21h
; 倒序输出字符串
lea si, message + length - 1
lea di, output
mov cx, length
reverse:
mov al, [si]
mov [di], al
inc di
dec si
loop reverse
; 输出结果
mov ah, 09h
lea dx, output
int 21h
mov ah, 4ch
int 21h
end start
```
上面的代码使用 `INT 21H` 的 `0ah` 功能,从键盘读取一个字符串并将其存储在 `message` 内存单元中。接着使用 `lea` 指令获取字符串的长度,将其存储在 `length` 变量中。然后使用一个循环将字符串倒序存储到 `output` 内存单元中。最后使用 `INT 21H` 的 `09h` 功能,将 `output` 中的字符串输出到屏幕上。
请注意,上述代码是为 DOS 平台编写的。如果您需要在其他平台上运行,需要进行相应的修改。
阅读全文