汇编语言

寄存器的作用

EAX:accumulator,加法乘法指令的缺省寄存器

EBX:base address,内存寻址存放基地址

ECX:counter,重复(REP)前缀指令和LOOP指令的内定计数器

EDX:data,总是被用来放整数除法产生的余数

ESI:source index,在很多字符串操作指令中, DS:ESI指向源串

EDI:destination index,ES:EDI指向目标串

EBP:base pointer,函数调用时??

ESP:stack pointer,栈顶指针,堆栈从高地址向低地址增长

EFLAGS:标志寄存器

EIP:指令指针寄存器

段寄存器:

CS(code stack) 

DS(data):通常用来存放要访问的数据的段地址

 SS(stack) ES FS GS:

寻址方式

立即数寻址:数据在指令代码中,用常量表示。mov al,12h

寄存器寻址:数据在寄存器中,用寄存器名表示。mov al,12

存储器寻址:数据在主存中,用存储器地址表示。基址寄存器+变址寄存器*比例+位移量

IO寻址:数据在外设中,用IO地址表示

子程序与堆栈

调用函数

call:将下条指令压入堆栈,转移到目标地址

ret:将当前堆栈顶部弹出内容作为返回地址看,转移到返回地址

参数传递:通用寄存器,共享变量,堆栈



将数据放入地址1000H的内存

mov bx,1000H

mov ds,bx

mov [0],al         ;[0]表示一个内存单元,0表示内存单元的偏移地址;指令执行时,自动取ds中的数据为内存单元的段地址

你可能感兴趣的:(汇编语言)