在emu8086上用mbr语言写下面程序 编写一个MBR程序,在计算机屏幕显示自己的姓名拼音,拼音后紧跟学号,并计算出上述字符的ASCII值的总和并以十进制形式显示出来。
时间: 2024-03-02 20:53:52 浏览: 76
以下是在emu8086上用mbr语言编写的程序,可以实现上述要求:
```
ORG 7C00h ; MBR程序必须从0x7c00开始
start:
mov ax, 0 ; 设置数据段寄存器
mov ds, ax
mov ah, 0x0e ; BIOS中断0x10功能号,用于在屏幕上输出字符
mov al, 'W' ; 输出自己的姓名拼音
int 10h
mov al, 'A'
int 10h
mov al, 'N'
int 10h
mov al, 'G'
int 10h
mov al, ' '
int 10h
mov al, 'X' ; 输出自己的学号
int 10h
mov al, 'X'
int 10h
mov al, 'X'
int 10h
mov al, 'X'
int 10h
mov al, 'X'
int 10h
mov al, 'X'
int 10h
mov al, 'X'
int 10h
mov al, 'X'
int 10h
mov al, 'X'
int 10h
mov bx, 0 ; 将ASCII码总和初始化为0
mov al, 'W' ; 计算姓名字符的ASCII码总和
add bx, ax
mov al, 'A'
add bx, ax
mov al, 'N'
add bx, ax
mov al, 'G'
add bx, ax
mov al, 'X' ; 计算学号字符的ASCII码总和
add bx, ax
mov al, 'X'
add bx, ax
mov al, 'X'
add bx, ax
mov al, 'X'
add bx, ax
mov al, 'X'
add bx, ax
mov al, 'X'
add bx, ax
mov al, 'X'
add bx, ax
mov al, 'X'
add bx, ax
mov ah, 0x0e ; 输出ASCII码总和的十进制形式
mov al, ' '
int 10h
mov al, 'A'
int 10h
mov al, 'S'
int 10h
mov al, 'C'
int 10h
mov al, 'I'
int 10h
mov al, 'I'
int 10h
mov al, ':'
int 10h
mov cx, 10 ; 将ASCII码总和转换为十进制形式
mov dx, 0
div cx
add dl, 48
mov ah, 0x0e
mov al, dl
int 10h
mov ah, 0x0e
add ah, 48
mov al, dh
int 10h
jmp $ ; 无限循环
times 510-($-$$) db 0 ; MBR程序必须是512字节,填充0以达到字节数
dw 0xaa55 ; MBR程序结尾的引导标记
```
在emu8086上运行该程序后,计算机屏幕将会输出 WANG XXXXXXX,其中 X 代表你的学号。接着,在屏幕上会输出 ASCII:xxx,其中 xxx 是自己姓名和学号的 ASCII 码总和。
阅读全文