李忠汇编语言-初学-第九天

在第九天的学习中,主要复习了第7至11章的汇编语言内容,尽管头疼,但坚持进行了Anki卡片的学习、复习,补充了Xmind思维导图,并在优快云博客和有道云笔记上记录了学习笔记。晚上进行了三次学习,每次间隔休息,确保学习效率。最后进行了第十一章的归纳笔记。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


学习目标

第十一章


学习小结

头巨疼,哪怕这几天都在划水,可作息属实不正常,明天调整一天,顺便总结归纳复习第7、8、9、10、11章内容,不是很扎实。
也不知道是换季还是什么原因,巨疼,我得先睡了。


学习内容

类型:汇编语言

进度:初学

天数:第九天

日期:2020年09月23日

书籍:李忠汇编语言

相关:无

内容:书籍 第十一章

时间:2020年09月23日 15:30- 2020年09月24日 00:40


学习时间

[80分钟] 15:30-16:50 Anki卡片学习、复习

[00分钟] 00:00-00:00 Anki卡片所学内容补充、添加、修改

[10分钟] 16:50-17:00 Xmind思维导图补充、添加、修改

       【90分钟】   回顾/复习

[05分钟] 17:00-17:05 优快云博客添加学习记录

[05分钟] 17:05-17:10有道云笔记添加学习笔记

[05分钟] 17:10-17:30 浏览新闻博客,扩充视野

[30分钟] 17:30-18:00 偷闲杂事处理

[120分钟] 18:00-20:00 做好学习准备(准备好视频、书籍等)

[00分钟] 00:00-00:00 预习所学知识

        【165分钟】   预习/预备

[70分钟] 20:00-21:10 第一次学习

学习内容:第十一章

[20分钟] 21:10-21:30 休息

[120分钟] 21:30-23:30 第二次学习

学习内容:第十一章总结

[30分钟] 23:30-00:00 休息

[40分钟] 00:00-00:40 第三次学习

学习内容:第十一章归纳笔记

        【230分钟】   学习

学习引申


学习检测

         ;代码清单11-1
         ;文件名:c11_mbr.asm
         ;文件说明:硬盘主引导扇区代码 
         ;创建日期:2011-5-16 19:54

         ;设置堆栈段和栈指针 
         mov ax,cs      
         mov ss,ax
         mov sp,0x7c00
      
         ;计算GDT所在的逻辑段地址 
         mov ax,[cs:gdt_base+0x7c00]        ;低16位 
         mov dx,[cs:gdt_base+0x7c00+0x02]   ;高16位 
         mov bx,16        
         div bx            
         mov ds,ax                          ;令DS指向该段以进行操作
         mov bx,dx                          ;段内起始偏移地址 
      
         ;创建0#描述符,它是空描述符,这是处理器的要求
         mov dword [bx+0x00],0x00
         mov dword [bx+0x04],0x00  

         ;创建#1描述符,保护模式下的代码段描述符
         mov dword [bx+0x08],0x7c0001ff     
         mov dword [bx+0x0c],0x00409800     

         ;创建#2描述符,保护模式下的数据段描述符(文本模式下的显示缓冲区) 
         mov dword [bx+0x10],0x8000ffff     
         mov dword [bx+0x14],0x0040920b     

         ;创建#3描述符,保护模式下的堆栈段描述符
         mov dword [bx+0x18],0x00007a00
         mov dword [bx+0x1c],0x00409600

         ;初始化描述符表寄存器GDTR
         mov word [cs: gdt_size+0x7c00],31  ;描述符表的界限(总字节数减一)   
                                             
         lgdt [cs: gdt_size+0x7c00]
      
         in al,0x92                         ;南桥芯片内的端口 
         or al,0000_0010B
         out 0x92,al                        ;打开A20

         cli                                ;保护模式下中断机制尚未建立,应 
                                            ;禁止中断 
         mov eax,cr0
         or eax,1
         mov cr0,eax                        ;设置PE位
      
         ;以下进入保护模式... ...
         jmp dword 0x0008:flush             ;16位的描述符选择子:32位偏移
                                            ;清流水线并串行化处理器 
         [bits 32] 

    flush:
         mov cx,00000000000_10_000B         ;加载数据段选择子(0x10)
         mov ds,cx

         ;以下在屏幕上显示"Protect mode OK." 
         mov byte [0x00],'P'  
         mov byte [0x02],'r'
         mov byte [0x04],'o'
         mov byte [0x06],'t'
         mov byte [0x08],'e'
         mov byte [0x0a],'c'
         mov byte [0x0c],'t'
         mov byte [0x0e],' '
         mov byte [0x10],'m'
         mov byte [0x12],'o'
         mov byte [0x14],'d'
         mov byte [0x16],'e'
         mov byte [0x18],' '
         mov byte [0x1a],'O'
         mov byte [0x1c],'K'

         ;以下用简单的示例来帮助阐述32位保护模式下的堆栈操作 
         mov cx,00000000000_11_000B         ;加载堆栈段选择子
         mov ss,cx
         mov esp,0x7c00

         mov ebp,esp                        ;保存堆栈指针 
         push byte '.'                      ;压入立即数(字节)
         
         sub ebp,4
         cmp ebp,esp                        ;判断压入立即数时,ESP是否减4 
         jnz ghalt                          
         pop eax
         mov [0x1e],al                      ;显示句点 
      
  ghalt:     
         hlt                                ;已经禁止中断,将不会被唤醒 

;-------------------------------------------------------------------------------
     
         gdt_size         dw 0
         gdt_base         dd 0x00007e00     ;GDT的物理地址 
                             
         times 510-($-$$) db 0
                          db 0x55,0xaa

运行示例图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值