汇编基础知识
一、标志位、操作数类型、指令格式
1.标志位
note:
cf:进位为1;不进位为0
of:溢出为1;不溢出为0
zf:结果为0,zf为1;结果为1,zf为0
af:进位为1;不进位为0
2.操作数类型
1)立即数
3)内存单元地址
2)寄存器号(X86)
3.汇编语言指令格式
二、MOV指令使用
MOV EAX,#050aH ;将十六进制050a 传送到通用寄存器eax中
MOV DI,BX(寄存器到寄存器之间传数
MOV ES,AX(通用寄存器与段寄存器之间传数)
MOV AX,DS(段寄存器至通用寄存器)
MOV AL,23H(将立即数"复制"到寄存器)
MOV [2000H],02H(直接寻址)
三、ADD ADC INC和SUB SBB DEC
1.加法指令
2.减法指令
CF (进位计数器,存进位值)
sub和add指令要求:DST、SRC 不能同时为存储器,DST不能为立即数,运算结果对标志位有影响。
sbb和adc指令要求:DST、SRC 不能同时为存储器, SRC可为立即数,运算结果对标志位有影响。
d1 segment buff1 db 36,36h,101100B sum1 db ?,?,? buff2 dw 100,900fh,1234h sum2 dw 3 dup(?) d1 ends e1 segment e1 ends s1 segment s1 ends c1 segment assume cs:c1,ds:d1,es:e1,ss:s1 start:mov ax,d1 mov ds,ax mov ax,e1 mov es,ax mov ax,s1 mov ss,ax mov al,buff1 mov sum1,al mov al,buff1+1 mov sum1+1,al mov al,buff1+2 mov sum1+2,al mov ax,buff2 mov sum2,ax mov ax,buff2+2 mov sum2+2,ax mov ax,buff2+4 mov sum2+4,ax mov ah,4ch int 21h c1 ends end start
----------------------------------------------------------------------------
新手学习,若有错误请留言,转载请附上博文连接,谢谢!