在emu8086上用mbr语言写下面程序 编写一个MBR程序,在计算机屏幕显示“zhouhe21210929”,并计算出上述字符的ASCII值的总和并以十进制形式显示出来。
时间: 2024-03-02 13:54:01 浏览: 62
以下是在emu8086上用mbr语言编写的程序,可以实现您所需的功能:
```
org 7c00h
start:
mov ax, cs
mov ds, ax
mov es, ax
; 将字符串 "zhouhe21210929" 存储到内存地址 0x7e00 处
mov si, msg
mov di, 7e00h
mov cx, 14
rep movsb
; 计算字符串中所有字符的 ASCII 值的总和
xor ax, ax
mov si, 7e00h
mov cx, 14
sumloop:
lodsb
add al, ah
adc ah, 0
add ax, bx
adc bx, 0
loop sumloop
; 将计算结果转换为十进制,并显示在屏幕上
mov si, result
mov cx, 5
mov bx, 10
convert:
xor dx, dx
div bx
add dl, '0'
mov [si+cx], dl
loop convert
; 在屏幕上显示 "zhouhe21210929"
mov si, msg
call print_string
; 在屏幕上显示计算结果
mov si, result
call print_string
; 无限循环
jmp $
; 打印字符串
print_string:
pusha
mov ah, 0eh
printloop:
lodsb
cmp al, 0
je printdone
int 10h
jmp printloop
printdone:
popa
ret
msg db "zhouhe21210929", 0
result times 5 db 0
times 510-($-$$) db 0
dw 0xaa55
```
程序将字符串 "zhouhe21210929" 存储到内存地址 0x7e00 处,并计算字符串中所有字符的 ASCII 值的总和。然后,它将计算结果转换为十进制,并在屏幕上显示字符串和计算结果。
请注意,这是一个 MBR 程序,需要使用软件(如 qemu)或硬件(如实际计算机)来运行。
阅读全文