---------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
12
常见的逻辑门:设备请求、异常情况或外
信号可能需要CPU立即响应,这时CPUstart循环控制
**NOT**NOT目标
位取反NOTDX**SHL**SHL目标,位数左移SHLAX,1AX<<=1
------------------------------------------------------------------------------------
1
**BP**基址指针BasePointer访问栈中的局
变量MOVAX,[BP-2]**SYSCALL**SYSCALL调用Linux系统调用SYSCALL
**SHR**SHR目标,位数右移SHRBX,2BX>>=2
端
访问、扩展乘除法
作**1.汇编语言基本概念**
**CMP**CMP目标,源比较CMPAX,BXAX-
寄存
名称作用示例用途**INT**INT中断号调用中断INT0x21调用DOS21h号中断
**指令****语法****作用****示例**
**IMUL**IMUL源有符号乘法IMULDXAX=AX*DX
AX
**MOV**MOV目标,源数据传输MOVAX,BX将BX的值复制到
**BX**基址寄存
Base存放内存地址或数据MOV[BX],**MUL**MUL源无符号乘法MULCXAX=AX*CX
**OR**OR目标,源
位或ORBX,AXBXMOV数据传输、ADD加法;
**JE**JE目标地址等于时
转JEloopZF=1时
转**SUB**SUB目标,源减法SUBBX,AXBX-=AX
、汇编语言基础**
c.内存寻址:汇编通过地址
作数据,如MOVAX,[1234H]读取内存地址AL访问内存
**JMP**JMP目标地址无条件
转JMPstart----------------------------------------------------------------------------------
**XOR**XOR目标,源
位异或XORCX,CX清零CX**INC目标加1INCAXAX+=1
**DX**数据寄存
DataI/OOUTDX,ALI/O**RET**RET返回RET
会暂停当前任务,转去执行相应的中断
理程序,然后再恢复原任务。**DIV**DIV源无符号除法DIVCXAX/CX,余数存DX
----------------------------------------------------------------------------------
**四、拓展**
**ADD**ADD目标,源加法ADDAX,5AX+=5
在执行程序时,某些事件如I/O
**DEC**DEC目标减1DECBXBX-=1
**PUSH**PUSH目标压栈PUSHAX
b.指令Instrus:CPU可执行的基本
作,如**IDIV**IDIV源有符号除法IDIVDXAX/DX,余数存DX
**2.基本寄存
****CX**计数寄存
ter主要用于循环计数LOOPa.寄存
Registers:CPU内
的小型存储单元,如AX、BX8086;**AX**累加寄存
Accumutor主要用于算术运算、I/OMOVAX,**3.汇编语言基本指令**
1
作BX数据传输**拓展1.逻辑门**
**JL**JL目标地址小于时
转有符号JLretry0x1234的数据;
-------------------------------------------------------------------------------
**AND**AND目标,源
位与ANDAL,0x0FAL&=0x0F**SP**堆栈指针StackPointer指向栈
相对于SSPUSHAX压栈逻辑门是计算机电路里最基本的"开关",它们
据输
信号决定输
结果,就像
数学题一样。下面是BX,不改变寄存
值**POP**POP目标
栈POPBX**JG**JG目标地址大于时
转有符号JGend**CALL**CALL地址调用
程序CALLmy_funcd.中断:计算机系统中用于
理异步事件的一
机制。当CPU**JNE**JNE目标地址不等时
转JryZF=0时
转