汇编基础整理

汇编基础
第一章:基础
1、地址总线
2、数据总线
3、控制总线
4、内存地址空间,地址空间分配

第二章:寄存器

cpu由寄存器,控制器,运算器登器件构成

a、通用寄存器 ax,bx,cx,dx
    高地位(H,L) AH,AL  ………………
        
  * 汇编指令:汇编指令或寄存器名称书写不区分大小写
  * 指令的两个操作对象的位数应当一致

  16位机构cpu
      * 运算器一次最多处理16位的数据
      * 寄存器的最大宽度为16位
      * 寄存器和运算器之间的通路为16位

   对于16位的CPU,能一次性处理,传输、暂时存储16位的地址
   段地址:分段管理内存    16位的8086CPU读写内存,拥有20位的地址总线如何达到1MB的寻址能力?    
      1、提供两个16位地址,一个称为段地址,,一个称为偏移地址
      2、地址加法器将两个16位地址合成一个20位的物理地址
      3、段地址 * 16 + 偏移地址

b、段寄存器 cs、 ss、 es、ds
   cs:代码段寄存器; ip:指令指针寄存器
    
   jmp 段地址:偏移地址    -- 同时修改cs,ip的内容
   jmp 某一合法寄存器。    -- 使用寄存器的值修改ip,含义上类似, mov IP,ax;
    
    
   1、短地址在8086CPU的段寄存器中存放.8086CPU要访问内存是,有段寄存器提供内存单元的段地址。8086CPU有4个段寄存器,其中CS用来存放指令的段地址
   2、CS存放指令的段地址,IP存放指令的偏移地址

windows下DEBUG命令
   -a 以汇编指令的形式在内存中写入机器指令 例如:-a 1000:0 1000:0000 mov ax,1
   -r 改变一个寄存器中的值。 例如: r ax  键盘点击ENTER
   -t 执行一条或者多条指令
   -e 改写内存中的内容 例如: -e 1000:0 b8 01 00 b9 00 02 01 c8
   -u 查看机器码对应的汇编指令
   -d 1000:0 查看内存中的内容。 -d 段地址:偏移地址
 


第三章
1、8086CPU内存地址由段地址和偏移地址构成,DS是段地址寄存器,同时注意
   a、不能用mov操作段寄存器  b、[……]表示一个内存单元,其中数字表示内存单元的偏移地址 c、ds 存放数据段的地址

      读取                   写入
   mov bx, 1000H           mov  bx, 1000H
   mov ds, bx              mov  ds, bx
   mov al, [0]             mov  [0],al

2、栈的操作
  push ax 表示将寄存器ax中的数据送入栈中
  pop  ax 表示将栈顶取出的数据送入ax
 
  * 8086cpu的入栈和出栈都是以字为单位进行的
  * 8086cpu不保证我们对栈的操作是否超界。

  8086cpu中,有两个寄存器SS 和SP,栈顶的段地址存放在ss中,偏移地址存放在sp中,任意时刻,SS:SP指向栈顶元素。
 
  Push指令的执行步骤:1、SP=SP-2; 2、向SS:SP指向的字单元中送入数据
  pop指令的执行步骤: 1、SS:SP指向的单元读取数据; 2、SP=SP+2


第四章 汇编程序编写






你可能感兴趣的:(基础)