3.1.116位寻址 16位寻址方式是指操作数的偏移地址 由16位二进制数组成,段地址保存在 DS、ES、SS、CS中,20位物理地址是 由段地址左移4位二进制加上操作数的 偏移地址形成,最大寻址空间为1MB
3.1.1 16位寻址 16位寻址方式是指操作数的偏移地址 由16位二进制数组成,段地址保存在 DS、ES、SS、CS中,20位物理地址是 由段地址左移 4位二进制加上操作数的 偏移地址形成,最大寻址空间为1MB。 6
1.立即寻址 在该寻址方式中,操作数直接存放在指令内,且 紧跟在指令操作码之后,指令码和操作数都存 放在代码段中。 汇编格式:n 操作数位置:指令 功能:指令码下一单元的内容即为操作数n,操 作数存放在指令中。 指令 操作数n
1. 立即寻址 在该寻址方式中,操作数直接存放在指令内,且 紧跟在指令操作码之后,指令码和操作数都存 放在代码段中。 汇编格式:n 操作数位置:指令 功能:指令码下一单元的内容即为操作数n,操 作数存放在指令中。 指令 操作数n 7
立即寻址例题 例3.1M0V AX,2000H 说明:M0V是双操作数指令,功能是实现数据传 送。该指令的目的操作数是AX,源操作数是 2000H,反汇编代码为B80020,其中指令长度 为3个字节,立即数2000H占两个字节,且紧跟 在指令操作码之后存放在代码段之中。 执行前:(AX)=0000H 执行后:(AX)=2000H
立即寻址例题 例3.1 MOV AX 3.1 MOV AX,2000H 说明:MOV是双操作数指令,功能是实现数据传 送。该指令的目的操作数是 该指令的目的操作数是AX,源操作数是 2000H,反汇编代码为B80020,其中指令长度 为3个字节,立即数2000H占两个字节,且紧跟 在指令操作码之后存放在代码段之中。 执行前:(AX)=0000H 执行后:(AX)=2000H。 8
2.直接寻址 在该寻址方式中,指令直接给出了操作数的偏移地址, 操作数存放在存储器内,操作数的偏移地址与操作码 一起存放在指令中,且紧跟在指令码之后。要想存取 操作数必须首先生成物理地址,操作数物理地址是由 段地址和偏移地址EA相加而成,默认段为数据段。 汇编格式:[n]或含有变量的地址表达式 操作数位置:存储器 功能:n或含有变量的地址表达式的值是操作数的偏移 地址EA,且存放在指令的下一个字单元中,但操作数 存放在存储器中。 段基地址 指令 存储器 EA ⊕ 操作数
2. 直接寻址 在该寻址方式中,指令直接给出了操作数的偏移地址, 操作数存放在存储器内,操作数的偏移地址与操作码 一起存放在指令中,且紧跟在指令码之后。要想存取 操作数必须首先生成物理地址,操作数物理地址是由 段地址和偏移地址EA相加而成,默认段为数据段。 汇编格式:[n]或含有变量的地址表达式 操作数位置:存储器 功能:n或含有变量的地址表达式的值是操作数的偏移 地址EA,且存放在指令的下一个字单元中,但操作数 存放在存储器中。 段基地址 EA 指令 存储器 ⊕ 操作数 9 EA
直接寻址例题 例3.2M0VAX,[2000H] 说明:源操作数采用直接寻址方式,指令码下一字单元的内容 2000H为源操作数的EA,操作数存放在存储器中。 执行前:(DS)=3000H, 执行后:(AX)=5050H 例3.3 MOV AX,BUFA 说明:源操作数采用直接寻址方式,指令码下一字单元的内容 为变量BUPA的EA,操作数存放在存储器变量BUFA所指向的存 储单元中。指令功能是将字类型变量BUFA的内容送入AX之中 执行前:假定BUFA在数据段中定义,EA=1000H,(DS) = 2000H,(AX)=1122H,(21000)=1259H, 执行后:(AX)=1259H 10
直接寻址例题 例3.2 MOV AX,[2000H] 说明:源操作数采用直接寻址方式,指令码下一字单元的内容 2000H为源操作数的EA,操作数存放在存储器中。 执行前:(DS)=3000H, 执行后:(AX)=5050H 例3.3 MOV AX,BUFA 说明:源操作数采用直接寻址方式,指令码下一字单元的内容 为变量BUFA的EA,操作数存放在存储器变量BUFA所指向的存 储单元中。指令功能是将字类型变量BUFA的内容送入AX之中。 执行前:假定BUFA在数据段中定义 在数据段中定义,EA=1000H,(DS)= 2000H,(AX)=1122H,(21000)=1259H, 执行后:(AX)=1259H 10 执行后:(AX)=1259H