吉林大学远程教育学院(编辑修改稿)内容摘要:

CHNOLOGY 数据传送类指令- 通用数据传送指令 (6) • ① 入栈指令 PUSH • 指令格式: PUSH Src • 将 16位操作数送至由堆栈指针 SP所指向的堆栈的顶部,然后修改堆栈指针 SP。 • Scr可以是: • 寄存器(数据寄存器、 IP、变址寄存器) • 段寄存器 • 两个连续地存储单元 • 例: PUSH AX • 操作过程 AH→[(SP) 1 ]; AH入栈 AL→[(SP) 2] ; AL入栈 (SP)2→(SP) •AL •AH SP2 SP1 SP COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 通用数据传送指令 (7) • ② 出栈指令 POP • 指令格式: POP dest • 把 SP指向的栈顶的一个字送至目标地址, 并修改堆栈指针 SP。 (不能 POP CS) • 例: POP BX (SP) → BL ;栈顶数据送 BL (SP+1)→BH ; 下一单元内容送 BH SP+2→ ( SP);堆栈指针加 2 • SP总是指向下一个要出栈的存储单元。 •BL •BH SP SP+1 SP+2 xxH yyH COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 通用数据传送指令 (7- 1) • 例 MOV AX, 9000H MOV SS, AX MOV SP, 0E200H MOV DX, 38FFH PUSH DX PUSH AX : POP DX POP AX 00H 38 38H 90H FFH FF 90 00 DH DL AH AL 9E200H 9E1FCH 执行 PUSH指令之后 38 FF 90 00 DH DL AH AL 92020H 执行 POP指令之后 00H 90H FFH 38H COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 吉林大学远程教育学院 微机原理及汇编语言 主讲人: 赵宏伟 教授 总学时: 80 吉林大学计算机科学与技术学院 第 十一 讲 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 通用数据传送指令 (8) • XCHG dest, src • 功能: 把一个字或一个字节的目的操作数与源操作数交换。 • 类型: • 说明: 不能在存储器与存储器之间进行,交换不能是段寄存器的内容,字长必须相同 • 例: XCHG AX, BX ; AX↔BX XCHG BL, [2020H] XCHG CL, DL ; CL ↔DL XCHG AX, BUFFER ; AL ↔(BUFFER) ; AH ↔(BUFFER+1) 通用寄存器 A X , B X , C X , D X , S P , B P , S I , D I 存储器 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 累加器专用指令 (1) 1. 输入指令 IN • 直接寻址 I/O 指令和寄存器间接寻址 I/O 指令 • 直接寻址指令包含了一个 8位的 I/O地址,允许寻址 256个端口。 • 间接寻址指令由 DX指出,包含了一个 16位的 I/O地址,允许寻址 65536个端口。 • 直接寻址端口地址 00H~ FFH • 间接寻址端口地址 0000H~ FFFFH • IN AL, n ; [n] →AL , n是 8位数据端口地址 • IN AX, n ; [n+ 1] , [n] →AX • IN AL, DX ; [(DX)] →AL , (DX)是 8位数据端口地址 • IN AX, DX ; [(DX)+ 1] , [(DX)] →AX COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 累加器专用指令 (2) 2. 输出指令 OUT • OUT n , AL ; AL→[n] • OUT n , AX ; AX→[n + 1] , [n] • OUT DX , AL ; AL→[(DX)] • OUT DX , AX ; AX→[(DX) + 1] , [(DX)] COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 累加器专用指令 (3) 3 . XLAT ( 查表转换 ) • 格式: XLAT 转换表 • 功能: 从转换表中查找出一个字节的内容 , 取代AL内容。 隐含寻址 , 有效地址 EA= (BX)+(AL) 即将 EA为偏移地址的存储单元单字节内容 → AL • 过程: 转换表最长 256字节, BX← 表始址 , AL← 表内位移 • 例: 有 0- 9的 ASCII码表 , 首地址 TABLE,要求将 2转换成对应的 ASCII码。 MOV BX, OFFSET TABLE MOV AL, 02H XLAT TABLE 30H 31H 38H TABLE+0 TABLE+1 : : TABLE+8 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 地址目标传送指令 (1) 1. LEA( 装入有效地址 ) • 格式: LEA 寄存器 , 存储器 • 功能: 把存储器操作数所在的 16位偏移量传送到 16位长的通用寄存器中。 • 例: LEA BX, MEM 结果: BX= 2020H LEA BX, BUFFER ;将 16位偏移地址 → 寄存器 MOV AL, [BX] ;存储单元 [BX]内容 → AL MOV AH, [BX+1] ;存储单元 [BX+ 1]内容 → AH, ( 2020H ) MEM 05 06 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 地址目标传送指令 (2) 2. LDS( 装入数据段指针 ) • 格式: LDS 寄存器 16, 存储器 32 • 功能: 将源操作数的双字指针 ( 段基址:偏移量 ) 低字送目标寄存器 , 高字送 DS。 16位寄存器操作数可为 BX、 BP、SI、 DI 中的一个。 32位存储器操作数 , 给出内存连续 4个单元的首地址: 低地址单元相邻两个字节是偏移量 → 寄存器 高地址单元相邻两个字节是段基址 → DS • 例: LDS SI, ADDR A DDR 65 SI 00 DS 4C 3B 0065 3 B 4 C COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 地址目标传送指令 (3) 3. LES( 装入附加段指针 ) • 格式: LES 寄存器 , 存储器 • 功能: 将源操作数的双字指针 ( 段基址:偏移量 )低字送目标寄存器 , 高字送 ES。 • 例: LES DI, ADDR ADDR 11 DI 22 ES 33 44 2 2 1 1 4433 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 数据传送类指令- 状态标志传送指令 1. LAHF( 装入 AH) • 格式: LAHF • 功能: 把 FLAG低 8位送入 AH,标志本身不受影响 . 2. SAHF( 设置标志 ) • 格式: SAHF • 功能: AH→FLAG 低 8位 3. PUSHF( 标志入栈 ) • 格式: PUSHF • 功能: ① SP2→SP ② FLAG→ ( SP) 4. POPF( 标志出栈 ) • 格式: POPF • 功能: ① ( SP) → FLAG ② SP+ 2→SP ③ 原 FLAG内容被破坏 CF PF AF ZF SF AH→ FLAG→ COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算术运算类指令 • 8088提供了加减乘除 4组基本算术运算指令。 • 可以实现字、字节、无符号数和有符号数运算。 • 可以: – 单操作数 ,不能是立即数, – 双操作数 ,立即数只能作源操作数。 – 隐含操作数 • 无符号组合 BCD适用加 、 减十进制运算。 • 无符号未组合 BCD适用加、减、乘、除十进制运算。 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算术运算类指令 –加法指令( 1) 1. ADD 不带进位加法指令 • 格式: ADD OPRD1, OPRD2 • 功能: OPRD1+ OPRD2→ OPRD1 ,完成两个字节或字操作数的相加,并将结果送目的操作数。 – OPRD1和 OPRD2均可以是 8位或 16位寄存器或存储器操作数 – 源操作数可以是立即数 – 可以是无符号数或有符号数 – 但不能同时是存储器数 – 不能对段寄存器进行运算 ADD AL, 30H ADD AX, SI ADD BX, 3FEH ADD DX, DATA[BX+SI] ;基址间址变址寻址 ADD DATA [SI], 100 ADD DATA [SI], Al。 ; Al+[DATA+[SI]] → [DATA+[SI]] 例: MOV AL, 7EH ; AL←7EH ADD AL, 5BH ; AL←7EH+5BH 最后两条执行后 AL=D9H,7FHD9HFFH, 各寄存器的状态: AF=1,CF=0,OF=1,PF=0,SF=1,ZF=0 CF=0,无进位 OF=1,若有符号数相加则产生溢出。 COMPUTER SCIENCE AND TECHNOLOGY COMPUTER SCIENCE AND TECHNOLOGY 算术运算类指令 –加法指令(2) 2. ADC 带进位加法指令 • 格式: ADC OPRD1,OPRD2 • 功能: PRD。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。