汇编随笔2

源程序框架

assume cs:codesg,ds:data,ss:stack

data segment

data ends

 

stack segment

stack ends

 

code segment

start:

 

mov ax,4c00H

int 21H

code ends

end start

源程序实现过程:edit编辑保存a1.asm->编译masm a1.asm;->连接link a1.obj;

查看:type a1.asm  

debug:debug a1.exe

 

[bx]表示一个内存单元,它的偏移地址在bx中;si,di功能相近;在【…】中使用bp,指令中没有显性地给出段地址,默认在ss中

inc bx ;bx 中的内容加一

/ *movax,2

   mov cx,11

   s: add ax,ax

   loop s*/

s为标号,标志一个地址

CPU在执行loop s时,要执行两步操作①cx=cx-1②判断cx,若为零执行下一条指令,不为零则转至标号s处执行

 段前缀:用于显式地指明内存单元的段地址;ds: cs: ss: es:

offset:取得标号的偏移地址

 

db:字节型

dw:字型

dd:双字型

dup:用于数据的重复;db 3 dup(0,1,2)=db 0,1,2,0,1,2,0,1,2.

 

and指令:逻辑与指令,按位进行与运算

or指令:逻辑或指令,按位进行或运算

 

div8(16)

被除数->(dx:)ax

除数->reg8/mem8(16)

商:al(ax)

余:ah(dx)

ret:pop ip

retf:pop ip, pop cs

标志寄存器:

ZF:结果为0,ZF=1,结果不为0,ZF=0

PF:结果的所有bit位1的个数为偶pf=1,为奇pf=0

SF:结果为负sf=1,非负sf=0

CF:进行无符号运算时,记录运算结果的最高有效位向更高位的进位或者借位----------adc:adc ax,bx:(ax)=(ax)+(bx)+cf

OF:发生溢出of=1,没有溢出of=0

posted @ 2017-12-27 14:19  卜卜卜卜  阅读(149)  评论(0编辑  收藏  举报