汇编语言学习知识指令速查表.doc

收藏

编号:2613176    类型:共享资源    大小:539.36KB    格式:DOC    上传时间:2020-04-24
8
金币
关 键 词:
汇编语言 学习 知识 指令 速查表
资源描述:
-* 附 录 附录A 常用80x86指令速查表 指令按助记符字母顺序排列,缩写、符号约定如下: (1) 指令中,dst, src表示目的操作数和源操作数。仅一个操作数时,个别处也表示为opr。 (2)imm表示立即数,8/16/32位立即数记作:imm8/imm16/imm32。 (3)reg表示通用寄存器,8/16/32位通用寄存器记作:reg8/reg16/reg32。 (4)mem表示内存操作数,8/16/32等内存操作数记作:mem8/mem16/mem32等。 (5)seg表示段寄存器,CS, DS, SS, ES, FS, GS。 (6)acc表示累加器,8/16/32累加器对应AL/AX/EAX。 (7)OF, SF, ZF, AF, PF, CF分别表示为O, S, Z, A, P, C,相应位置为:字母,根据结果状态设置;?,状态不确定;-,状态不变;1,置1;0,清0;例如:0 S Z ? P -表示:OF清0,AF不确定,CF不变,其它根据结果设置。若该栏空白,则表示无关。 (8)寄存器符号诸如(E)CX, (E)SI, (E)DI, (E)SP, (E)BP和(E)IP等,表示在16地址模式下使用16位寄存器(如CX),或在32地址模式下使用32位寄存器(如ECX)。 (9)周期数表示指令执行所需的CPU时钟周期个数,即执行时间为:周期数/主频(秒)。 (10)诸如(386+)是表示该指令只能用于80386及以后微处理器上。 指 令 功 能 指 令 形 式 周期数 影响标志位 AAA 非压缩BCD加法调整,AH+进位 AAA 3 ?S Z ? P C AAD AH10+ALAL,之后AH清0 AAD 10 O S Z A P C AAM AL10的商AH,余数AL AAM 18 O S Z A P C AAS 非压缩BCD减法调整,AH-借位 AAS 3 ? S Z ? P C ADC dst, src 带进位加法:dst+src+CFdst ADC reg, reg 1 O S Z A P C ADC reg, mem 2 ADC reg, imm 1 ADC acc, imm 1 ADC mem, reg 3 ADC mem, imm 3 ADD dst, src 加法:dst+srcdst ADD reg, reg 1 O S Z A P C ADD reg, mem 2 ADD reg, imm 1 ADD acc, imm 1 ADD mem, reg 3 ADD mem, imm 3 续表 指 令 功 能 指 令 形 式 周期数 影响标志位 AND dst, src 逻辑与:dstsrcdst AND reg, reg 1 0 S Z ? P 0 AND reg, mem 2 AND reg, imm 1 AND acc, imm 1 AND mem, reg 3 AND mem, imm 3 ARPL dst, src 调整选择器的RPL域 ARPL reg/mem16, reg16 7 - - Z - - - BOUND reg, mem 越界检查:(80188+) 若reg值超出mem,则产生INT 5 BOUND reg16, mem32 INT+32 BOUND reg32, mem64 BSF reg, src 从低到高扫描src,16/32位 (386+) 若src=0,ZF清0,否则置1,位置reg BSF reg, reg 6~35 ? ? Z ? ? ? BSF reg, mem 6~43 BSR reg, src 从高到低扫描src, 16/32位 (386+) 若src=0,ZF清0,否则置1,位置reg BSR reg, reg 6~35 ? ? Z ? ? ? BSR reg, mem 6~43 BSWAP reg32 反转reg32字节顺序 (486+) BSWAP reg32 1 BT dst, src 位测试 (386+) 由dst指定的位CF (16/32位) BT reg, reg 4 ? ? ? ? ? C BT reg, imm 4 BT mem, reg 9 BT mem, imm 4 BTC dst, src 位测试并变反 (386+) dst的指定位CF, 然后该位变反, (16/32位) BTC reg, reg 7 ? ? ? ? ? C BTC reg, imm 7 BTC mem, reg 13 BTC mem, imm 8 BTR dst, src 位测试并清0 (386+) dst的指定位CF, 然后该位清0, (16/32位) BTR reg, reg 7 ? ? ? ? ? C BTR reg, imm 7 BTR mem, reg 13 BTR mem, imm 8 BTS dst, src 位测试并置1 (386+) dst的指定位CF, 然后该位置1, (16/32位) BTS reg, reg 7 ? ? ? ? ? C BTS reg, imm 7 BTS mem, reg 13 BTS mem, imm 8 CALL dst 子程序调用 近调用:返回的偏移地址进栈, 然后转至dst处执行; 远调用:返回的段和偏移地址进栈, 然后转至dst处执行 CALL label (near) 1 CALL reg (near) 2 CALL mem (near) 2 CALL label (far) 4 CALL mem (far) 5 CBW AL符号扩展成AX CBW 3 CDQ EAX符号扩展成EDX:EAX CDQ 2 CLC CF清0 CLC 2 - - - - - 0 CLD DF清0 CLD 2 CLI IF清0,即关中断 CLI 7 CLTS 清除CR0中任务切换标志 (386+) CLTS 10 CMC CF取反,即CFCF CMC 2 - - - - - C CMOVcc reg, src 条件成立srcreg, 16/32位 (586+) cc: 参见Jcc指令。 CMOVcc reg, reg 4~9 CMOVcc reg, mem 续表 指 令 功 能 指 令 形 式 周期数 影响标志位 CMP dst, src 比较:dst-src,据此设置标志位 CMP reg, reg 1 O S Z A P C CMP reg, mem 2 CMP reg, imm 1 CMP acc, imm 1 CMP mem, reg 2 CMP mem, imm 2 CMPSx 串比较:[(E)SI]-ES:[(E)DI], 然后(E)SI, (E)DI增或减Δ(1/2/4) x: B, W, D对应字节(1)、字(2)、双字(4)。DF=0增,否则减 CMPSB 5 O S Z A P C CMPSW CMPSD CMPXCHG dst, reg acc-dst, 等regdst,否则 dstacc (486+) CMPXCHG reg/mem,reg 5,6 O S Z A P C CMPXCHG8B dst EDX:EAX-dst,等ECX:EBXdst,否则EDX:EAXdst (486+) CMPXCHG8B mem64 10 - - Z - - - CPUID CPU标识EAX,EBX,ECX,EDX CPUID 14 CWD AX符号扩展成DX:AX CWD 2 CWDE AX符号扩展成EAX CWDE 3 DAA 加法后的十进制调整AL DAA 3 ? S Z A P C DAS 减法后的十进制调整AL DAS 3 ? S Z A P C DEC opr opr自减1,即opr-1opr DEC reg 1 O S Z A P - DEC mem 3 DIV src 无符号除法 8位:AXsrc,商AL, 余数AH 16位:DX:AXsrc,商AX, 余数DX 32位:EDX:EAXsrc,商EAX,余数EDX DIV reg 17~41 ? ? ? ? ? ? DIV mem ENTER m, n 建m字节局部空间,n级的栈帧 (286+) ENTER imm16, imm8 11+ HLT 暂停CPU,直到I/O中断发生 HLT IDIV src 有符号除 8位:AXsrc,商AL, 余数AH 16位:DX:AXsrc,商AX, 余数DX 32位:EDX:EAXsrc,商EAX,余数EDX IDIV reg 22~46 ? ? ? ? ? ? IDIV mem IMUL src 有符号乘法 8位:ALsrcAX 16位:AXsrcDX:AX 32位:EAXsrcEDX:EAX IMUL reg 10~11 O ? ? ? ? C IMUL mem IMUL reg, src 有符号乘法 regsrcreg (286+) IMUL reg, reg/mem 10 O ? ? ? ? C IMUL reg, src,imm 有符号乘法 srcimmreg (286+) IMUL reg, reg/mem,imm 10 O ? ? ? ? C IN acc, src 端口数据acc IN acc, imm8 7 IN acc, DX 7 INC opr opr自加1,即opr+1opr INC reg 1 O S Z A P - INC mem 3 续表 指 令 功 能 指 令 形 式 周期数 影响标志位 INSx 端口DX数据ES:[(E)DI], 然后(E)DI增或减Δ(1/2/4) x: B,W, D对应字节(1)、字(2)、双字(4);若DF=0增,否则减 INSB 9 INSW INSD INT n FLAGS进栈,IF,TF置0,从[4n]双字单元取 段和偏移地址,并转去执行 (实地址模式) INT 3 INT+5 INT imm8 INT+6 INTO 若OF=1,则执行INT 4 INTO 4,INT+5 INVD 使Cache无效 INVD 15 INVLPG 使TLB入口无效 INVLPG 29 IRET 中断返回:从堆栈弹出返回的偏移 和段地址,再弹出标志寄存器内容 IRET 7 Jcc opr 条件满足,则转移至opr Jcc label 1 JA/JNBE opr 高于(CF=0ZF=0) JA/JNBE label JAE/JNB/JNC opr 高于等于(CF=0) JAE/JNB/JNC label JB/JC/JNAE opr 低于(CF=1) JB/JC/JNAE label JBE/JNA opr 低于等于(CF=1ZF=1) JBE/JNA label JE/JZ opr 等于(ZF=1) JE/JZ label JG/JNLE opr 大于(ZF=0SF=OF) JG/JNLE label JGE/JNL opr 大于等于(SF=OF) JGE/JNL label JL/JNGE opr 小于(SF≠OF) JL/JNGE label JLE/JNG opr 小于等于(ZF=1SF≠OF) JLE/JNG label JNE/JNZ opr 不等于(ZF=0) JNE/JNZ label JNO opr 无溢出(OF=0) JNO label JNS opr 非负数(SF=0) JNS label JO opr 溢出(OF=1) JO label JP/JPE opr 有偶数个1(PF=1) JP/JPE label JPO/JNP opr 有奇数个1(PF=0) JPO/JNP label JS opr 负数(SF=1) JS label JCXZ opr 若CX=0,则转移至opr JCXZ label 6/5 JECXZ opr 若ECX=0,则转移至opr JECXZ label 6/5 JMP opr 转移至opr 近:转移后仅可改变(E)IP 远:转移后可改变(E)IP和CS JMP label (near) 1 JMP reg (near) 2 JMP mem (near) 2 JMP label (far) 3 JMP mem (far) 4 LAHF 标志寄存器低字节AH LAHF 2 - - - - - - LAR reg, dst 将dst指定的选择器访问权reg LAR reg, reg/mem 8 - - Z - - - LDS reg, mem 将mem内容DS : reg LDS reg, mem 4 LEA reg, mem 将mem的偏移地址reg LEA reg, mem 1 LEAVE 释放栈帧,即:(E)BP(E)SP,POP (E)BP LEAVE 3 LES reg, mem 将mem内容ES : reg LES reg, mem 4 LFS reg, mem 将mem内容FS : reg (386+) LFS reg, mem 4 续表 指 令 功 能 指 令 形 式 周期数 影响标志位 LGDT mem 将mem内容GDTR (286+) LGDT mem 6 LGS reg, mem 将mem内容GS : reg (386+) LGS reg, mem 4 LIDT mem 将mem内容IDTR (286+) LIDT mem 6 LLDT src srcLDTR (286+) LLDT reg/mem 8 LMSW src src机器状态字(CR0低16位) (286+) LMSW reg/mem 8 LOCK 总线锁 (以便其他处理器处理指令) LOCK 1 LODSx 从串取:[(E)SI]acc, 然后(E)SI增或减Δ(1/2/4) x: B, W, D对应字节(1)、字(2)、双字(4);若DF=0增,否则减 LODSB 2 LODSW LODSD LOOP opr (E)CX自减1, 若(E)CX≠0则转移 LOOP label 5/6 LOOPE/LOOPZ opr (E)CX自减1, 若ZF=1(E)CX≠0则转移 LOOPE/LOOPZ label 7/8 LOOPNE/LOOPNZ opr (E)CX自减1, 若ZF=0(E)CX≠0则转移 LOOPNE/LOOPNZ label 7/8 LSL reg, src src选择器确定的段界reg (286+) LSL reg, reg/mem 8 - - Z - - - LSS reg, mem 将mem内容SS : reg (386+) LSS reg, mem 4 LTR src src任务寄存器TR (286+) LTR reg16/mem16 10 MOV dst, src 数据传送:srcdst MOV reg, reg 1 MOV reg, mem 1 MOV reg, imm 1 MOV mem, reg 1 MOV mem, imm 1 MOV acc, mem 1 MOV mem, acc 1 MOV dst, src 控制寄存器内容传送 (386+) CRireg32, reg32CRi (i=0,2,3,4) MOV reg32, CRi 4 MOV CRi, reg32 12~22 MOV dst, src 调试寄存器内容传送 (386+) DRireg32, reg32DRi (i=0~7) MOV reg32, DRi 2~12 MOV DRi, reg32 11~12 MOV dst, src 段寄存器内容传送 segdst, srcseg(CS除外) MOV reg/mem, seg 1 MOV seg, reg/mem 2~12 MOVSx 串传送: [(E)SI]ES:[(E)DI], 然 后(E)SI、(E)DI增或减Δ(1/2/4) x: B, W, D对应字节(1)、字(2)、双字(4);若DF=0增,否则减 MOVSB 4 MOVSW MOVSD MOVSX reg, src src经符号扩展后reg (386+) MOVSX reg, reg/mem 3 MOVZX reg, src src经0扩展后reg (386+) MOVZX reg, reg/mem 3 MUL src 无符号乘法 8位:ALsrcAX 16位:AXsrcDX:AX 32位:EAXsrcEDX:EAX MUL reg 10~11 O ? ? ? ? C MUL mem NEG opr opr求补(负),即-opropr NEG reg 1 O S Z A P C NEG mem 3 NOP 空操作 NOP 1 续表 指 令 功 能 指 令 形 式 周期数 影响标志位 NOT opr opr按位取反,即:opropr NOT reg 1 O S Z A P C NOT mem 3 OR dst, src 逻辑或,dstsrcdst OR reg, reg 1 0 S Z ? P 0 OR reg, mem 2 OR reg, imm 1 OR mem, reg 3 OR mem, imm 3 OR acc, imm 1 OUT dst, acc acc内容端口dst OUT imm8, acc 12 OUT DX, acc 12 OUTSx [(E)SI]内容DX端口, (386+) 然后(E)SI增或减Δ(1/2/4) x: B, W, D对应字节(1)、字(2)、双字(4);若DF=0增,否则减 OUTSB 13 OUTSW OUTSD POP dst 从堆栈弹出数据dst ((E)SP增2或4, seg不能为CS) POP reg 1 POP mem 3 POP seg 3~12 POPA 数据出栈DI, SI, BP, BX, DX, CX, AX (SP增28) (286+) POPA 5 POPAD 堆栈弹出数据EDI,ESI,EBP,EBX,EDX, ECX,EAX ((E)SP增48) (386+) POPAD 5 POPF 数据出栈FLAGS ((E)SP增2) (286+) POPF 4 O S Z A P C POPFD 数据出栈EFLAGS ((E)SP增4) (386+) POPFD 4 O S Z A P C PUSH src src数据进栈 ((E)SP减2/4) (reg32,mem32,imm, 386+) PUSH reg 1 PUSH mem 2 PUSH imm 1 PUSH seg 1 PUSHA AX,CX,DX,BX,SP,BP,SI,DI进栈, (SP减28) (286+) PUSHA 5 PUSHAD EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI进栈, ((E)SP减48) (386+) PUSHAD 5 PUSHF FLAGS进栈 ((E)SP减2) (286+) PUSHF 3 PUSHFD EFLAGS进栈 ((E)SP减4) (386+) PUSHFD 3 RCL dst, n dst带进位循环左移n位 dst CF 注: n为imm8是386+支持 RCL reg, 1 1 O - - - - C RCL mem, 1 3 RCL reg, CL 7~24 RCL mem, CL 9~26 RCL reg, imm8 8~25 RCL mem, imm8 10~27 RCR dst, n dst带进位循环右移n位 dst CF 注: n为imm8是386+支持 RCR reg, 1 1 O - - - - C RCR mem, 1 3 RCR reg, CL 7~24 RCR mem, CL 9~26 RCR reg, imm8 8~25 RCR mem, imm8 10~27 续表 指 令 功 能 指 令 形 式 周期数 影响标志位 RDMSR MSR[ECX]EDX:EAX (586+) RDMSR 20~24 RDTSC 自启动以来CPU执行的时钟周期数EDX:EAX (586+) 28 REP 串指令 当(E)CX≠0重复{(E)CX自减1, 再执行其后的串指令} REP INSx 11+3n REP LODSx 7+3n REP MOVSx 6,13n REP OUTSx 13+4n REP STOSx 6,9+3n REPE/REPZ串指令 当(E)CX≠0ZF=1重复{(E)CX自 减1,再执行其后的串指令} REPE/REPZ CMPSx 7,8+4n O S Z A P C REPE/REPZ SCASx 7,8+4n REPNE/REPNZ串指令 当(E)CX≠0ZF=0重复{(E)CX自 减1,再执行其后的串指令} REPNE/REPNZ CMPSx 7,8+4n O S Z A P C REPNE/REPNZ SCASx 7,8+4n RET [n] 子程序返回:从堆栈弹出返回地 址,若有n则返回后(E)SP再增n。 近返回RETN:只弹出偏移地址; 远返回RETF:弹出偏移和段地址; RETN 2 RETF 4 RETN imm16 3 RETF imm16 4 ROL dst, n dst循环左移n位 dst CF 注:n为imm8是386+支持 ROL reg, 1 1 O - - - - C ROL mem, 1 3 ROL reg, CL 4 ROL mem, CL 4 ROL reg, imm8 1 ROL mem, imm8 3 ROR dst, n dst循环右移n位 dst CF 注:n为imm8是386+支持 ROR reg, 1 1 O - - - - C ROR mem, 1 3 ROR reg, CL 4 ROR mem, CL 4 ROR reg, imm8 1 ROR mem, imm8 3 RSM 从系统管理方式恢复 RSM O S Z A P C SAHF AH标志寄存器的低8位 SAHF 1 - S Z A P C SAL dst, n dst算术左移n位,即dst2ndst dst CF 0 注:n为imm8时,386+支持 SAL reg, 1 1 O - - - - C SAL mem, 1 3 SAL reg, CL 4 SAL mem, CL 4 SAL reg, imm8 1 SAL mem, imm8 3 SAR dst, n dst算术右移n位,即dst2ndst dst CF 注:n为imm8是386+支持 SAR reg, 1 1 O - - - - C SAR mem, 1 3 SAR reg, CL 4 SAR mem, CL 4 SAR reg, imm8 1 SAR mem, imm8 3 续表 指 令 功 能 指 令 形 式 周期数 影响标志位 SBB dst, src 带借位减法:dst-src-CFdst SBB reg, reg 1 O S Z A P C SBB reg, mem 2 SBB reg, imm 1 SBB acc, imm 1 SBB mem, reg 3 SBB mem, imm 3 SCASx 串扫描:acc-ES:[(E)DI], 然后(E)DI增或减Δ(1/2/4) x: B, W, D对应字节(1)、字(2)、双字(4);若DF=0增,否则减 SCASB 4 O S Z A P C SCASW SCASD SETcc dst 条件真,1dst,否则0dst, cc见Jcc (386+) SETcc reg8/mem8 3~8 SGDT mem GDTRmem (286+) SGDT mem 4 SHL dst, n dst逻辑左移n位,与SAL相同 SHL/SAL是一条指令 SHLD dst, reg, n 双精度左移 (操作数:16/32位)(386+) dst CF reg SHLD reg/mem, reg, imm8 4 ? S Z ? P C SHLD reg/mem, reg, CL SHR dst, n dst逻辑右移n位 dst CF 0 注:n为imm8时,386+支持 SAR reg, 1 1 O - - - - C SAR mem, 1 3 SAR reg, CL 4 SAR mem, CL 4 SAR reg, imm8 1 SAR mem, imm8 3 SHRD dst, reg, n 双精度右移 (操作数:16/32位)(386+) SHLD reg/mem, reg, imm8 4 ? S Z ? P C dst CF reg SHLD reg/mem, reg, CL SIDT mem IDTRmem SIDT mem 4 SLDT dst LDTRdst SLDT reg/mem 2 SMSW dst 机器状态字(CR0低16位)dst (286+) SMSW reg/mem 4 STC CF置1 STC 2 - - - - - 1 STD DF置1 STD 2 STI IF置1,即开中断 STI 7 STOSx 串存入:accES:[(E)DI], 然后(E)DI增或减Δ(1/2/4) x: B, W, D对应字节(1)、字(2)、双字(4);若DF=0增,否则减 STOSB 3 STOSW STOSD STR dst 任务寄存器TRdst STR reg/mem16 2 SUB dst, src 减法:dst-srcdst SUB reg, reg 1 O S Z A P C SUB reg, mem 2 SUB reg, imm 1 SUB acc, imm 1 SUB mem, reg 3 SUB mem, imm 3 续表 指 令 功 能 指 令 形 式 周期数 影响标志位 TEST dst, src 与测试,dstsrc据此设置标志位 TEST reg, reg 2 0 S Z ? P 0 TEST reg, mem 1 TEST reg, imm 1 TEST acc, imm 1 TEST mem, imm 2 VERR src 若src确定的段可读,1ZF,否则0ZF VERR reg/mem16 7 - - Z - - - VERW src 若src确定的段可写,1ZF,否则0ZF VERW reg/mem16 7 - - Z - - - WAIT 等待,检查挂起未屏蔽的浮点异常 WAIT 1 WBINVD 写回Cache,并使之无效 (486+) WBINVD 2000+ WRMSR EDX:EAXMSR[ECX] (586+) WRMSR 30~35 XADD dst, src dstsrc,再dst+srcdst (486+) XADD reg/mem, reg 3,4 O S Z A P C XCHG dst, src dst, src内容交换,即dstsrc XCHG reg/mem, reg 3 XCHG acc, reg 2 XLAT/XLATB 查表换码:(E)BX+AL确定的单元值AL XLAT 4 XOR dst, src 逻辑异或,dstsrcdst XOR reg, reg 1 0 S Z ? P 0 XOR reg, mem 2 XOR reg, imm 1 XOR acc, imm 1 XOR mem, reg 3 XOR mem, imm 3 附录B 编程练习环境说明 1. 编程练习软件包 附带软件包x86ASM是在Microsoft的MASM6.15软件包的基础上,加入CodeView、Win32的开发工具及Turbo C 2.0等,进行简单整理而成的,以便初学者编程练习使用。 软件包中的基本文件有: MASM.EXE 汇编程序 LINK.EXE 连接程序 ML.EXE 汇编连接程序(自动调用LINK.EXE) ML.ERR 汇编错误信息文件 LIB.EXE 子程序库管理程序 LIB16.EXE 16位子程序管理程序 LINK16.EXE 生成DOS程序的连接程序 LIB32.EXE Win32的库管理程序 LINK32.EXE 生成Win32程序的连接程序 CV目录 CodeView调试程序CV.EXE及相应的环境 INC32目录 Win32的API的函数库声明文件 LIB32目录 Win32的API的函数库 TC目录 Turbo C 2.0命令行环境和集成环境 SET2ML16.BAT ML默认使用LINK16.EXE连接程序 SET2ML32.BAT ML默认使用LINK32.EXE连接程序 使用这个软件包既可以用来练习编写DOS环境下的应用程序,也可以用来练习编写Win32环境下的应用程序。 提供TC的目的是用它来练习16位环境下汇编语言程序模块和C程序模块的连接。 2.DOS系统下的编程练习环境 真正的DOS是运行在实模式下的一个操作系统,所以DOS程序是运行在16位地址模式下的。这种模式下的程序具有这样的特点: (1) 偏移地址是16位,所表示的偏移地址只能是0~64K-1。在默认情况下,指令处理的数据类型是16位的,但也可以处理32位数据。 (2) 应用程序可以访问所有的计算机系统资源,可以使用I/O指令直接与外设交换数据,也可以用INT指令调用DOS环境下的系统功能(DOS和BIOS)。 在DOS系统下有很多系统功能调用可用,但是这里仅将DOS环境作为编程练习的平台,所以只须如下所述的很少几个系统功能就足够了,主要解决字符的输入、输出,以及应用程序退出返回。如果读者需要开发DOS系统下的应用程序,则必须另外参阅相关的系统资料手册。 1) 编程练习所用的DOS系统调用 (1) 功能01h。从标准输入设备输入一个字符,并回显。 入口:AH=01h 出口:AL=输入字符的ASCII码 (2) 功能02h。向标准输出设备输出一个字符。 入口:AH=02h DL=待输出字符的ASCII码 出口:无 (3) 功能08h。从标准输入设备输入一个字符,无回显。 入口:AH=08h 出口:AL=输入字符的ASCII码 (4) 功能09h。输出一个字符串到标准输出设备上。 入口:AH=09h DS:DX=待输出字符串的地址(字符串须以$作为其结束标志) 出口:无 (5) 功能0Ah。从标准输入设备上读入字符串(以回车结束,有回显)。 入口:AH=0Ah DS:DX=输入缓冲区地址(字节0须填入允许输入字符数)。 出口:输入缓冲区字节1存放输入的字符数,字节2起存放输入的字符串 (6) 功能0Bh。检查标准输入设备上是否有字符可读。 入口:AH=0Bh 出口:AL=00h——无字符可读;FFh——有字符可读 (7) 功能4Ch。终止程序的执行,并可返回一个代码。 入口:AH=4Ch AL=返回的代码 出口:无 2) 示例程序Demo16.ASM 编写程序Demo16.ASM,输入一个字符和一个字符串,并显示。 _STACK SEGMENT STACK STACK USE16 ; 定义堆栈段 DB 2046 DUP(0) ; 堆栈区长度:2KB TOS DW 0 ; 初始堆栈栈顶 _STACK ENDS ; 堆栈段定义结束 _DATA SEGMENT DATA USE16 ; 定义数据段 Msg DB 13, 10, Hello, World!, 13,10,$ C1 DB 13, 10, Character is: *, 13, 10, $ S2 DB 13, 10, Buffer content is: Buffer DB 9, 0, 10 DUP(*), 13, 10, $ _DATA ENDS ; 数据段定义结束 _TEXT SEGMENT CODE USE16 ; 定义代码段 ASSUME CS: _TEXT, DS:_DATA, SS:_STACK Start: MOV AX, _DATA ; 取数据内存区段地址 MOV DS, AX ; 设置数据段寄存器 CLI ; 设置堆栈期
展开阅读全文
提示  淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:汇编语言学习知识指令速查表.doc
链接地址:https://www.taowenge.com/p-2613176.html
关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

收起
展开