【例3.2】 下列程序执行后, (AX)=?,(BX)=? MOV AX,1234H MOV BX, 5678H ADD AX,BX 该程序中MOV指令为数据传送指令操作符,ADD指冷 为加法指令操作符,三条指令皆为双操作数指令。第一、 条指令AX、BX皆为目的操作数地址,为寄存器寻址方式。 第三条指令中,AX为目的操作数地址,BX为源操作数地 源地址和目的地址皆为寄存器寻址方式
【例3.2】 下列程序执行后,(AX)=?,(BX)=? MOV AX,1234H MOV BX,5678H ADD AX,BX 该程序中MOV指令为数据传送指令操作符,ADD指令 为加法指令操作符,三条指令皆为双操作数指令。第一、二 条指令AX、BX皆为目的操作数地址,为寄存器寻址方式。 第三条指令中,AX为目的操作数地址,BX为源操作数地址。 源地址和目的地址皆为寄存器寻址方式
公 图形表示: AX 指令☐ +1234H BX *5678H 执行:1234H→AX 5678H→BX (AX)+(BX) →AX 执行后:(AX)=68ACH, (BX)=5678H 返回本节
图形表示: 执行:1234H→AX 5678H→BX (AX)+(BX)→AX 执行后:(AX)= 68ACH,(BX)=5678H 返回本节
3。存储器寻址 如果操作码所需操作数存放在内存储器中,则指令申 需要给出操作数的地址信息。为了提高程序的灵活性, 8086指令系统提供了多种存储器寻址方式 (1)直接寻址 (2)寄存器间接寻址 (3)寄存器相对寻址 (4)基址变址寻址 (5)关于段跨跃前缀
3. 存储器寻址 如果操作码所需操作数存放在内存储器中,则指令中 需要给出操作数的地址信息。为了提高程序的灵活性, 8086指令系统提供了多种存储器寻址方式 (1)直接寻址 (2)寄存器间接寻址 (3)寄存器相对寻址 (4)基址变址寻址 (5)关于段跨跃前缀
(1) 直接寻址 指令中直接给出操作数地址MOV AL,12山 对比:M0VAL,12H L编格式: ①含有变量的地址表达式。 ②段寄存器名:EA。 功能:指令下一字单元的内容是操作数的偏移地 址EA。 段寄存器 图形表示: 指 段首址 令 左移4位 EA ⊕ PA操作数
(1) 直接寻址 指令中直接给出操作数地址 MOV AL,[12H] 对比: MOV AL, 12H 汇编格式:①含有变量的地址表达式。 ②段寄存器名:[EA]。 功能:指令下一字单元的内容是操作数的偏移地 址EA。 图形表示:
【例3.3】 【例3.3】寄存器和存储器内容为: (AX)=1212H, BUF为数据段定义的变量,其偏移地址是2000H, (DS)=3000H,(32000H)=4545H。 执行指令:MOV AX,BUF =M0VAX,2000H田 执行后: (AX)=? 图形表示: 段寄存器 段首如 令 左移4位 EA ⊕★ A操作数 执行: (320001H)AX 执行后: (AX) =4545H 返回本节
【例3.3】 【例3.3】寄存器和存储器内容为:(AX)=1212H, BUF为数据段定义的变量,其偏移地址是2000H, (DS)=3000H,(32000H)=4545H。 执行指令:MOV AX ,BUF = MOV AX, [2000H] 执行后:(AX)=? 图形表示: 执行:(32000H)→AX 执行后:(AX)=4545H 返回本节