第三章IBMPC机的指令系统与寻址方式.ppt
文本预览下载声明
第三章 IBM PC机的指令系统和寻址方式 指令系统:一组指令集 (page 388) 3.1 IBM PC机的寻址方式 3.3 IBM PC机的指令系统 3.3.1 数据传送指令 ? 通用数据传送指令 ? 累加器专用传送指令 ? 地址传送指令 ? 标志寄存器传送指令 例: PUSH DS SUB AX, AX PUSH AX …… …… RET 例: PUSH AX PUSH BX … … POP BX POP AX 与REP配合工作的 MOVS / STOS / LODS REP MOVS / STOS / LODS 执行操作:(1) 如(CX)= 0则退出REP,否则转(2) (2) (CX) ? (CX) -1 (3) 执行MOVS / STOS / LODS (4) 重复(1) ~ (3) 例:(AX)= 0012H,(BX)= 0034H,把它们装配成(AX)= 1234H MOV CL, 8 ROL AX, CL ADD AX, BX 例:(BX)=84F0H (1) (BX)为无符号数,求(BX)/2 SHR BX, 1 ; (BX) = 4278H (2) (BX)为带符号数,求(BX)/2 SAR BX, 1 ; (BX) = 0C278H (3) 把(BX)中的16位数每4位压入堆栈 0008 0004 000F 0000 ? (SP) MOV CH, 4 ; 循环次数 MOV CL, 4 ; 移位次数 NEXT: ROL BX, CL MOV AX, BX AND AX, 0FH PUSH AX DEC CH JNZ NEXT 3.3.4 串处理指令 ? 串传送指令 ? 存入串指令 ? 从串取指令 ? 串比较指令 ? 串扫描指令 配合使用的前缀有: REP 重复 REPE/REPZ 相等/为零则重复 REPNE/REPNZ 不相等/不为零则重复 MOVS 串传送指令 MOVS DST, SRC MOVSB (字节) MOVSW (字) 例:MOVS ES: BYTE PTR [DI], DS: [SI] 执行操作:(1) ((DI)) ← ((SI)) (2) 字节操作:(SI)←(SI)±1, (DI)←(DI)±1 字操作: (SI)←(SI)±2, (DI)←(DI)±2 方向标志DF=0时用 +,DF=1时用 - 。 REP MOVS:将数据段中的整串数据传送到附加段中。 源串(数据段)→ 目的串(附加段) 执行REP MOVS之前,应先做好: (1)源串首地址(末地址)→ SI (2)目的串首地址(末地址)→ DI (3)串长度 → CX (4)建立方向标志(CLD使DF=0,STD使DF=1) (SI)? 低地址 高地址 数据段 附加段 (SI)? ?(DI) ?(DI) DF=0 DF=1 例3.58 datarea segment mess1 db ‘personal_computer’ datarea
显示全部