x86汇编代码学习-计算机工作原理2

文章目录

  • 前言
  • 1.mov
  • 2.内存分段
  • 3.调试
  • 5.注释
  • 6.标号
  • 7.add sub
  • 8.inc dec自增,自减
  • 9.adc sbb
  • 10 乘法栈
  • 11 栈寄存器push pop
  • 12 jz jnz
  • 13 section 16字节对齐
  • 14 CALL
  • 15 逻辑运算
  • 16 启动MBR以外的程序
  • 17
  • 4.

前言

视频教程

x86汇编代码学习-计算机工作原理1


x86汇编代码学习-计算机工作原理2_第1张图片

1.mov

x86汇编代码学习-计算机工作原理2_第2张图片

因为ah是8bit,所以会传送一个字节的数据到ah寄存器中
x86汇编代码学习-计算机工作原理2_第3张图片
ax 是 16bit,所以会传送两个字节的数据到它那里
x86汇编代码学习-计算机工作原理2_第4张图片

综上,就是会自动判断寄存器的大小,来移动数据。
mov ax,bx是可以的,但是mov cx,dh就不可以,必须保持左右两边宽度一样

所以总共有9个mov操作
mov word [0x01], 0xb80
加了[]为内存单元,不加的时候是立即数
x86汇编代码学习-计算机工作原理2_第5张图片

2.内存分段

8086是16位的计算机,但是它的数据总线有20位,所以有1M的寻址
x86汇编代码学习-计算机工作原理2_第6张图片
x86汇编代码学习-计算机工作原理2_第7张图片
x86汇编代码学习-计算机工作原理2_第8张图片
如果每一段位16Byte,那么1M就有65536个16Byte
如果每一段为64kb,那么就有16个64KB
x86汇编代码学习-计算机工作原理2_第9张图片
下面可以看到一个物理地址,根据分段的不同,有多个逻辑地址,这也很好理解,因为分段不一样
x86汇编代码学习-计算机工作原理2_第10张图片
根据实际运行来给段地址
x86汇编代码学习-计算机工作原理2_第11张图片
x86汇编代码学习-计算机工作原理2_第12张图片

3.调试

x86汇编代码学习-计算机工作原理2_第13张图片

x86汇编代码学习-计算机工作原理2_第14张图片

Bochs官网:http://bochs.sourceforge.net/
Bochs下载:https://sourceforge.net/projects/bochs/files/bochs/2.6.11/
Bochs命令:http://bochs.sourceforge.net/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=http://bochs.sourceforge.net/doc/docbook/user/index.html

x86汇编代码学习-计算机工作原理2_第15张图片
x86汇编代码学习-计算机工作原理2_第16张图片

然后点击disk Boot,出现下面
x86汇编代码学习-计算机工作原理2_第17张图片
x86汇编代码学习-计算机工作原理2_第18张图片
x86汇编代码学习-计算机工作原理2_第19张图片

x86汇编代码学习-计算机工作原理2_第20张图片

x86汇编代码学习-计算机工作原理2_第21张图片

x86汇编代码学习-计算机工作原理2_第22张图片

x86汇编代码学习-计算机工作原理2_第23张图片

可以通过load来加载
x86汇编代码学习-计算机工作原理2_第24张图片

运行,如果运行失败把里面的lock文件删除了重新来
x86汇编代码学习-计算机工作原理2_第25张图片

x86汇编代码学习-计算机工作原理2_第26张图片

x86汇编代码学习-计算机工作原理2_第27张图片

e05b是bios程序的入口
x86汇编代码学习-计算机工作原理2_第28张图片
x86汇编代码学习-计算机工作原理2_第29张图片
x86汇编代码学习-计算机工作原理2_第30张图片

x86汇编代码学习-计算机工作原理2_第31张图片
x86汇编代码学习-计算机工作原理2_第32张图片
x86汇编代码学习-计算机工作原理2_第33张图片
x86汇编代码学习-计算机工作原理2_第34张图片

x86汇编代码学习-计算机工作原理2_第35张图片
x86汇编代码学习-计算机工作原理2_第36张图片
x86汇编代码学习-计算机工作原理2_第37张图片
x86汇编代码学习-计算机工作原理2_第38张图片
x86汇编代码学习-计算机工作原理2_第39张图片
x86汇编代码学习-计算机工作原理2_第40张图片

x86汇编代码学习-计算机工作原理2_第41张图片
x86汇编代码学习-计算机工作原理2_第42张图片

x86汇编代码学习-计算机工作原理2_第43张图片
x86汇编代码学习-计算机工作原理2_第44张图片
x86汇编代码学习-计算机工作原理2_第45张图片
x86汇编代码学习-计算机工作原理2_第46张图片
x86汇编代码学习-计算机工作原理2_第47张图片
x86汇编代码学习-计算机工作原理2_第48张图片

mov ax, 0x7c00
mov ds, ax

mov bx, 0x353637
mov byte [0xf1], 'h'
mov byte [0xf2], 0x3839
jmp $

times 510-($-$$) db 0
db 0x55,0xaa


编译
nasm -f bin .\mov2.asm -o .\mov2.bin

5.注释

x86汇编代码学习-计算机工作原理2_第49张图片

6.标号

x86汇编代码学习-计算机工作原理2_第50张图片
x86汇编代码学习-计算机工作原理2_第51张图片

7.add sub

结果保存在第一个
x86汇编代码学习-计算机工作原理2_第52张图片
x86汇编代码学习-计算机工作原理2_第53张图片
x86汇编代码学习-计算机工作原理2_第54张图片
x86汇编代码学习-计算机工作原理2_第55张图片
x86汇编代码学习-计算机工作原理2_第56张图片
x86汇编代码学习-计算机工作原理2_第57张图片
x86汇编代码学习-计算机工作原理2_第58张图片
x86汇编代码学习-计算机工作原理2_第59张图片

s 200
表示循环200次

8.inc dec自增,自减

32位加法

9.adc sbb

x86汇编代码学习-计算机工作原理2_第60张图片
x86汇编代码学习-计算机工作原理2_第61张图片
x86汇编代码学习-计算机工作原理2_第62张图片
x86汇编代码学习-计算机工作原理2_第63张图片

10 乘法栈

64位寄存器,但是关注后16bit
x86汇编代码学习-计算机工作原理2_第64张图片
x86汇编代码学习-计算机工作原理2_第65张图片

x86汇编代码学习-计算机工作原理2_第66张图片
x86汇编代码学习-计算机工作原理2_第67张图片

11 栈寄存器push pop

x86汇编代码学习-计算机工作原理2_第68张图片
x86汇编代码学习-计算机工作原理2_第69张图片

12 jz jnz

x86汇编代码学习-计算机工作原理2_第70张图片
x86汇编代码学习-计算机工作原理2_第71张图片
x86汇编代码学习-计算机工作原理2_第72张图片
x86汇编代码学习-计算机工作原理2_第73张图片

13 section 16字节对齐

x86汇编代码学习-计算机工作原理2_第74张图片
x86汇编代码学习-计算机工作原理2_第75张图片
x86汇编代码学习-计算机工作原理2_第76张图片

14 CALL

x86汇编代码学习-计算机工作原理2_第77张图片

15 逻辑运算

x86汇编代码学习-计算机工作原理2_第78张图片

x86汇编代码学习-计算机工作原理2_第79张图片
x86汇编代码学习-计算机工作原理2_第80张图片
x86汇编代码学习-计算机工作原理2_第81张图片

x86汇编代码学习-计算机工作原理2_第82张图片

x86汇编代码学习-计算机工作原理2_第83张图片
x86汇编代码学习-计算机工作原理2_第84张图片
x86汇编代码学习-计算机工作原理2_第85张图片

16 启动MBR以外的程序

x86汇编代码学习-计算机工作原理2_第86张图片
x86汇编代码学习-计算机工作原理2_第87张图片

17

4.

你可能感兴趣的:(硬件,汇编,学习)