sinat_38603242 2017-11-16 09:56 采纳率: 14.3%
浏览 781
已结题

汇编语言代码改写,把如下代码的姓氏改为“杜”字该怎么改,求大神帮助

;; BIOS会把512字节的引导扇区加载到 0000:7c00 处,
;; 然后跳转到0000:7c00处,将控制权交给引导代码。
org 07c00h ;这一行告诉编译器,我们的代码将被加载到7c00处。
mov ax, cs ;将代码段寄存器的值送入AX
mov ds, ax ;将数据段的地址置为代码段的地址?
mov es, ax ;将附加段的地址置为代码段的地址?
call DispStr ;调用显示字符串例程
jmp $ ;无限循环, $表示当前行编译后的地址
;; 以上就是整个程序的执行过程了
;; 下面是DispStr子程序
DispStr:
mov ax, BootMessage ;将字符串首地址传给寄存器ax
mov bp, ax ;CPU将用ES:BP来寻址字符串
mov cx, 300 ;通过CX,CPU知道字符串的长度
mov ax, 01301h ;AH=13表示13号中断, AL=01H,表示目标字符串仅仅包含字符,属性在BL中包含,移动光标
mov bx, 000fh ;黑底红字, BL=0CH,高亮
mov dl, 0 ;dh表示在第几行显示,dl表示第几列显示
int 10h ;BIOS的10H中断的13号中断用于显示字符串
ret
BootMessage: db "",13,10," **************",13,10," **************",13,10," *** *** ",13,10," ************",13,10," **************",13,10," *** ** ",13,10," ************",13,10," **************",13,10," *********** ",13,10," ********* ",13,10," **** ** ",13,10," ** *** ** **",13,10," ** ****** ",13,10," *** *********",13,10,"*** ****",13,10," ** ****", ;对NASM来讲,标号和变量的作用一样, db表示define byte
;; $当前行被汇编后的地址,$$表示一个section开始处的地址,本程序只有一个section,所以指0x7c00
times 510-($-$$) db 0 ;填充剩下空间,使生成的二进制恰好为512字节
dw 0xaa55 ;结束标志,如果发现扇区以0xAA55结束,则BIOS认为它是一个引导扇区,dw表示define word

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-11-16 12:09
    关注

    目测
    BootMessage: 是个点阵,星号表示不显示这个像素,空格表示显示。

    你拿windows画图板写一个杜字,然后显示网格,放大到最大,照着写它的点阵,就可以了。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据