编写一个MBR程序,在计算机屏幕显示自己的姓名拼音,拼音后紧跟学号,并计算出上述字符的ASCII值的总和并以十进制形式显示出来。
时间: 2024-02-29 19:52:47 浏览: 51
mbr.rar_mbr
非常抱歉,我刚才回答的内容有误。以下是正确的MBR程序代码:
```
org 0x7c00
; 设置段寄存器
xor ax, ax
mov ds, ax
mov es, ax
; 在屏幕上显示姓名拼音和学号
mov si, name
call print_string
mov si, id
call print_string
; 计算字符的ASCII值的总和并打印出来
mov si, name
call calc_sum
mov si, id
call calc_sum
mov ah, 0x0e
mov al, ' '
int 0x10
mov ax, word [sum]
call print_num
jmp $
; 打印字符串
print_string:
lodsb
or al, al
jz .done
mov ah, 0x0e
int 0x10
jmp print_string
.done:
ret
; 计算字符的ASCII值的总和
calc_sum:
xor bx, bx
xor ax, ax
.loop:
lodsb
or al, al
jz .done
add ax, bx
adc bx, 0
jmp .loop
.done:
add word [sum], ax
add word [sum+2], bx
ret
; 打印数字
print_num:
xor cx, cx
mov bx, 10
.loop1:
xor dx, dx
div bx
push dx
inc cx
or ax, ax
jnz .loop1
.loop2:
pop dx
add dl, '0'
mov ah, 0x0e
int 0x10
loop .loop2
ret
; 数据段
name db 'Zhang San ' ; 姓名拼音
id db '123456789' ; 学号
sum dw 0 ; ASCII值的总和
dw 0
; 结束标志
times 510-($-$$) db 0
dw 0xaa55
```
您可以将以上代码保存到名为mbr.asm的文件中,并使用汇编器将其编译为二进制文件mbr.bin。然后,您可以使用dd命令将mbr.bin写入磁盘的MBR扇区。最后,重新启动计算机即可看到程序输出。
请注意,这个示例程序只是一个演示,可能需要根据您的操作系统和硬件进行修改和调整。在实际使用中,请小心操作,并确保备份重要数据。
阅读全文