首页 > 技术文章 > 汇编基础知识

itml 2020-07-07 21:11 原文

一、标志位、操作数类型、指令格式

       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
View Code

----------------------------------------------------------------------------

新手学习,若有错误请留言,转载请附上博文连接,谢谢!

推荐阅读