8086指令系统之算术运算类指令

8086 指令系统之算术运算类指令 2007-04-17 07:51 1 加法指令 1.1 加法指令 ADD ADD reg,imm/reg/mem ;reg←reg+imm/reg/mem ADD mem,imm/reg ;mem←mem+imm/reg 2.17a: 例 2.17a:加法运算 mov add mov mov add add al,0fbh ;al=0fbh al,07h ;al=02h word ptr[200h],4652h ;[200h]=4652h bx,1feh ;bx=1feh al,bl ;al=00h word ptr[bx+2],0f0f0h ;[200h]=3742h
ADD 指令按照状态标志的定义相应设置这些标志的 0 或 1 状态。例如 在 07+FBH→02H 运算后:标志为 OF=0、SF=0、ZF=0、AF=1、PF=0、CF=1;用调 试程序单步执行后,上述标志状态依次为 NV、PL、NZ、AC、PO、CY。 同样进行 4652h+f0f0h→3742H 运算后,标志为 OF=0、SF=0、ZF=0、 AF=0、PF=1、CF=1;调试程序依次显示为 NV、PL、NZ、NA、PE、CY。注意,PF 仅反映低 8 位中“1”的个数,AF 只反映 D3 对 D4 位是否有进位。 1.2 带进位加法指令 ADC ADC reg,imm/reg/mem ;reg←reg+imm/reg/mem+CF ADC mem,imm/reg ;mem←mem+imm/reg+CF ;mem←mem+imm/reg+CF 加法运算外, CF, ADC 指令除完成 ADD 加法运算外,还要加进位 CF,其用法及对状态标志的 指令一样。 影响也与 ADD 指令一样。ADC 指令主要用于与 ADD 指令相结合实现多精度 数相加。 数相加。 2.17b: 例 2.17b:无符号双字加法运算 mov ax,4652h ;ax=4652h add ax,0f0f0h ;ax=3742h,CF=1 mov dx,0234h ;dx=0234h adc dx,0f0f0h ;dx=f325h,CF=0 上述程序段完成 DX.AX = 0234 4652H + F0F0 F0F0H = F325 3742H。 1.3 增量指令 INC INC reg/mem ;reg/mem←reg/mem+1 增量)。 INC 指令对操作数加 1(增量)。

inc bx inc byte ptr[bx] 设计加 1 指令和后面介绍的减 1 指令的目的, 主要是用于对计数器和地 用于对计数器和地 址指针的调整,所以它们不影响进位 CF 标志,对其他状态标志位的影响与 ADD、 址指针的调整 ADC 指令一样。 2 2.1 减法指令 减法指令 SUB ;reg←regSUB reg,imm/reg/mem ;reg←reg-imm/reg/mem SUB mem,imm/reg ;mem←mem-imm/reg ;mem←mem2.18a: 例 2.18a:减法运算 mov al, 0fbh ;al=0fbh sub al, 07h ;al=0f4h,CF=0 mov word ptr [200h],4652h ;[200h]=4652h mov bx,1feh ;bx=1feh sub al,bl ;al=0f6h,CF=1 sub word ptr [bx+2],0f0f0h ;[200h]=5562h,CF=1 2.2 带借位减法指令 SBB ;reg←reg-imm/reg/memSBB reg,imm/reg/mem ;reg←reg-imm/reg/mem-CF ;mem←mem-imm/regSBB mem,imm/reg ;mem←mem-imm/reg-CF
该指令使目的操作数减去源操作数,还要减去借(进)位 CF,结果送 到目的操作数。SBB 指令主要用于与 SUB 指令相结合实现多精度数相减。 指令相结合实现多精度数相减。 SBB 2.18b: 例 2.18b:无符号双字减法运算
mov ax,4652h ;ax=4652h sub ax,0f0f0h ;ax=5562h,OF=0、SF=0、ZF=0、AF=0、PF=0、CF=1 mov dx,0234h ;dx=0234h sbb dx,0f0f0h ;dx=1143h,OF=0、SF=0、ZF=0、AF=0、PF=0、CF=1
上述程序段完成 DX.AX = 0234 4652H-F0F0 F0F0H = 1143 5562H。 2.3 减量指令 DEC ;reg/mem←reg/memDEC reg/mem ;reg/mem←reg/mem-1 减量)。 )。同 DEC 指令对操作数减 1(减量)。 INC 指令一样,DEC 指令不影响 CF,但影响 其他状态标志。 dec cx dec word ptr[si]

2.4
求补指令 NEG ;reg/mem←0NEG reg/mem ;reg/mem←0-reg/mem
指令对操作数执行求补运算,即用零减去操作数,然后结果返回操作 NEG 指令对操作数执行求补运算 数。NEG 指令对标志的影响与用零作减法的 SUB 指令一样。 2.19: 例 2.19:求补运算
mov ax,0ff64h neg al ;ax=ff9ch,OF=0、SF=1、ZF=0、PF=1、CF=1 sub al,9dh ;ax=ffffh,OF=0、SF=1、ZF=0、PF=1、CF=1 neg ax ;ax=0001h,OF=0、SF=0、ZF=0、PF=0、CF=1 dec al ;ax=0000h,OF=0、SF=0、ZF=1、PF=1、CF=1 neg ax ;ax=0000h,OF=0、SF=0、ZF=1、PF=1、CF=0 2.5 比较指令 CMP
;reg regCMP reg,imm/reg/mem ;reg-imm/reg/mem ;memCMP mem,imm/reg ;mem-imm/reg
该指令将目的操作数减去源操作数,但结果不回送目的操作数。 该指令将目的操作数减去源操作数,但结果不回送目的操作数。也就是 说 CMP 指令与减法指令 SUB 执行同样的操作,同样影响标志,只是不改变目的操 作数。 指令用于比较两个操作数的大小关系。 CMP 指令用于比较两个操作数的大小关系。执行比较指令之后,可以根据 标志判断两个数是否相等、 大小关系等。 所以, CMP 指令后面常跟条件转移指令, 根据比较结果不同产生不同的分支。 例 2.20:比较 AL 是否大于 100 2.20: cmp al ,100 ;al-100 jb below ;al<100,跳转到 below 执行 sub al,100 ;al≥100,al←al-100 inc ah ;ah←ah+1 below: ... 3 乘法指令 3.1 无符号数乘法指令 MUL ;无符号字节乘 无符号字节乘: MUL r8/m8 ;无符号字节乘:AX←AL×r8/m8 ;无符号字乘 无符号字乘: MUL r16/m16 ;无符号字乘: DX.AX←AX×r16/m16 DX.AX←AX×r16/m16 CF。 如果乘积的高一半 (AH 或 DX) 0, OF=CF=0; 为 则 MUL 指令影响标志 OF 和 CF。 否则 OF=CF=1。利用乘法指令对 OF 和 CF 的影响,可以判断相乘的结果中高一半 是否含有有效数值。但是,MUL 指令对其他状态标志的影响没有定义,也就是成 为任意,不可预测。 2.21a: 例 2.21a:无符号数 0B4H 与 11H 相乘 mov al,0b4h ;al=b4h=180d mov bl,11h ;bl=11h=17d mul bl ;ax=Obf4h=3060d,OF=CF=1(AX 高 8 位不为 0) 3.2 有符号数乘法指令 IMUL

IMUL r8/m8 ;有符号字节乘:AX←AL×r8/m8 ;有符号字节乘: 有符号字节乘 ;有符号字乘 有符号字乘: IMUL r16/m16 ;有符号字乘: DX.AX←AX×r16/m16 IMUL 指令对 OF 和 CF 的影响是:若乘积的高一半是低一半的符号扩展, 则 OF=CF=0;否则均为 1。它仍然用于判断相乘的结果中高一半是否含有有效数 值。IMUL 指令对其他标志没有定义。 2.21b 1b: 例 2.21b:有符号数 0B4H 与 11H 相乘 mov al,0b4h ;al=b4h=-76d mov bl,11h ;bl=11h=17d imul bl ;ax=faf4h=-1292d,OF=CF=1 ;AX 高 8 位不是低 8 位的符号扩展,表示含有有效数字 计算二进制数乘法:b4h×11h。如果把它当作无符号数,用 MUL 指令结 果为 0bf4h;如果看作是有符号数,用 IMUL 指令则结果为 faf4h。由此可见,同 样的二进制数看作无符号数与有符号数相乘,即采用 MUL 与 IMUL 指令,它们的 结果是不相同的。 4 除法指令 4.1 无符号数除法指令 DIV
;无符号字节除 无符号字节除: DIV r8/m8 ;无符号字节除:AL←AX÷r8/m8 的商, 的商, ;AH←AX÷r8/m8 的余数 ;无符号字除 无符号字除: DIV r16/m16 ;无符号字除: 的商, AX←DX.AX÷r16/m16 的商, ;DX←DX.AX÷r16/m16 的余数 2.22a 22a: 例 2.22a:无符号数 0400H 除以 B4H mov ax,0400h ;ax=400h=1024d mov bl,0b4h ;bl=b4h=180d div bl ;商 al=05h,余数 ah=7ch=124d 4.2 有符号数除法指令 IDIV
;有符号字节除 有符号字节除: IDIV r8/m8 ;有符号字节除:AL←AX÷r8/m8 的商, 的商, ;AH←AX÷r8/m8 的余数 r16/m16 ;有符号字除 有符号字除: IDIV r16/m16 ;有符号字除: 的商, AX←DX.AX÷r16/m16 的商, ;DX←DX.AX÷r16/m16 的余数 2.22b: 例 2.22b:有符号数 0400H 除以 B4H mov ax,0400h ;ax=400h=1024d mov bl,0b4h ;bl=b4h=-76d

idiv bl ;商 al=f3h=-13d,余数 ah=24h=36d 除法指令 DIV 和 IDIV 虽然对标志的影响没有定义,但是却可能产生溢 可能产生溢 可能产生 出。 当被除数远大于除数时,所得的商就有可能超出它所能表达的范围。如 果存放商的寄存器 AL/AX 不能表达,便产生溢出,8086CPU 中就产生编号为 0 的 内部中断。 对 DIV 指令,除数为 0,或者在字节除时商超过 8 位,或者在字除时商 超过 16 位,则发生除法溢出。对 IDIV 指令,除数为 0,或者在字节除时商不在 -128~127 范围内,或者在字除时商不在-32768~32767 范围内,则发生除法溢出。 5 符号扩展指令 5.1 字节转换为字指令 CBW ;AL CBW ;AL 符号扩展成 AX CBW 指令将 AL 的最高有效位 D7 扩展至 AH,即:如果 AL 的最高有效位 是 0,则 AH = 00;AL 的最高有效位为 1,则 AH = FFH。AL 不变。 2.23: 例 2.23:符号扩展 mov al,80h ;al=80h cbw ;ax=ff80h add al,255 ;al=7fh cbw ;ax=007fh 符号扩展是指用一个操作数的符号位(即最高位)形成另一个操作数, 后一个操作数的各位是全 0(正数)或全 1(负数)。有符号数据通过符号扩展 加长了位数,但数据大小并没有改变。 5.2 字转换为双字指令 CWD DX,即:如果 AX 的最高有效位 D15 为 0, CWD 将 AX 的内容符号扩展形成 DX 则 DX=0000H;如果 AX 的最高有效位 D15 为 1,则 DX=FFFFH。 符号扩展指令常用来获得除法指令所需要的被除数。例如 AX=FF00h, 它表示有符号数-256; 执行 CWD 指令后, DX=FFFFh, 则 DX.AX 仍表示有符号数-256。 例 2.24:进行有符号数除法 AX÷BX 2.24: 24 cwd idiv bx 对无符号数除法应该采用直接使高 8 位或高 16 位清 0 的方法,获得倍长的被除 数。这就是零位扩展。 零位扩展。 零位扩展

实验二 算术运算实验

实验二算术运算实验 一、实验目的 1、掌握MASM for Windows 环境下的汇编语言编程环境使用; 2、掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式; 3、掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标志 位的影响及测试方法; 4、掌握无符号数和有符号数运算区别及编程方法; 5、掌握BCD 码调整指令的使用方法 二、软硬件实验环境 1、硬件环境:惠普64 位一体化计算机及局域网; 2、软件环境:windows 8,红蜘蛛管理系统,MASM for Windows。 三、实验基本原理 算术运算实验需要对运行结果进行调试及查看状态字,其相关知识如下。 1) 标志位 在debug调试过程中,标志位用特殊符号表示的,其标志名和状态符号的对照表参照表1所示。 表1标志名和状态符号的对照表参照表 2) 加减法指令 ADD表示加法指令,ADC表示带进位加法指令,SUB表示减法指令,SBB表示带进位减法指令。 3) 乘除法指令

MUL表示无符号数乘法指令,IMUL表示带符号数乘法指令,DIV表示无符号数除法指令,IDIV 表示带符号数除法指令。 4) 符号位扩展指令 CBW表示从字节扩展到字的指令,CWD表示从字扩展到双字的指令。 5) BCD码的调整指令 在进行十进制加减运算时,需要将数据用BCD码表示,还要考虑到是组合BCD码还是非组合BCD码,组合BCD码是用一个字节表示两位十进制数,非组合BCD码是用一个字节表示一位十进制数,对于组合的BCD码加减法运算其结果存放在AL中。 组合的BCD码加法调整指令DAA; 组合的BCD码减法调整指令DAS; 非组合的BCD码加法调整指令AAA; 非组合的BCD码减法调整指令AAS; 乘法的非组合BCD码调整指令AAM; 除法的非组合BCD码调整指令AAD。 8088/8086指令系统提供了实现加、减、乘、除运算指令,可参照表2所示内容。 表2数据类型的数据运算表 四、实验步骤与内容 1)对于表格中三组无符号数,试编程求这三组数的指定运算结果,并考虑计算结果对标志寄存器中状态标志位的影响: ①实验分析 本实验要求简单,仅对指定三组数进行基本运算。只需使用ADD、SUB、MUL、DIV四个运算命令,并以MOV命令作为数值转移的手段即可。运算结果和状态标志的情况可以通过debug调试中的T命令进行逐步查看。 需要注意的主要有以下几点: 1.在进行加法和乘法运算时,会出现对高位的进位扩展。因此,在记录结

3算术运算指令实验

2.3 算术运算指令实验 一、实验目的 ·掌握单字节的加减法指令的使用。 ·掌握单字节的乘除法指令的使用。 ·掌握用Keil调试汇编源程序的方法。 ·掌握用Proteus调试汇编源程序的方法。 二、实验预备知识 算术运算指令对程序状态寄存器PSW中的相关位会产生不同的影响。具体如下:◇执行加法指令时,当和的第3位或第7位有进位时,分别将AC、CY标志位置1;否则为O。如果第6位向第7位有进位而第7位没有向前进位,或者如果第7位向前有进位而第6位没有向第7位进位,OV=1,否则OV-O。该操作也影响标志位P。 ◇执行减法指令时,如果第7位有借位,则CY置1,否则清O。若第3位有借位,则 AC置1;否则清O。两个带符号数相减,还要考查OV标志,若OV为1,表示差数溢出,即破坏了正确结果的符号位。该操作也影响标志位P。 ◇执行乘法指令时,若乘积大子OFFH,则OV置1,否则清o(此时B的内容为0)。 CY总是被清O。该操作也影响标志位p。 ◇执行除法指令时,若除数(B) -OOH.则结果无法确定,OV置l。CY总是被清O。该操作也影响标志位P。 三、实验内容 将算术运算指令分成两类,分别编写两个小程序,以完成数据的加减法、乘除法运算。 1.参考程序i-hn减法运算 (1)将立即数# B5H、#36H、#89H分别传送至内部RAM区40H、R2、A中。 (2)将内部RAM区40H中的内容与A中的内容相加,然后再与R2中的内容相加,结果存放至内部RAM区50H中。 (3)将A中的内容与内部RAM区40H中的内容相减,结果存放至内部RAM区60H中。 2.参考程序2——乘除法运算 (1>将立即数#75H、#31H分别传送至内部RAM区15H、33H中。 (2)将内部RAM区15H单元的内容与33H单元的内容相乘。 (3)将乘积的高8位和低8位分别传送至内部RAM区31H、30H中。 (4)将内部RAM区15H单元的内容除以33H单元的内容。 (5)将商和余数分别传送至内部RAM区41H、40H中。四、实验参考程序

第八讲 算术运算类指令

第八讲算术运算类指令 教学方法:讲授法 教学目的: 1、熟悉数据运算类指令的操作方式特点 2、理解二-十进制调整指令的含义 3、熟练掌握加法指令 教学重点、难点: 加法、减法指令、二-十进制调整指令 无条件转移指令的应用 主要教学内容(提纲): 一、数据运算类指令的操作方式特点 二、算术运算类指令 三、逻辑运算类指令 复习: direct、@Ri、@DPTR、Rn、#data、(x)、((x))的含义? 讲授要点 §3-3 算术运算类指令 包括:加、减、乘、除;加一、减一。 一、加法指令 ADD A,Rn ;(A)(A)+ (Rn)以下类同。 ADD A,direct ADD A,@Ri ADD A,#data 无符号数相加时:若C = 1,说明有溢出(其值> 255)。 带符号数相加时:若OV = D7c⊕D6c = 1,说明有溢出。 ADDC A,Rn ;(A)(A)+(Rn)+(C),以下类同。ADDC A,direct ADDC A,@Ri ADDC A,#data 上述四条指令多用于多字节数相加。 INC A ;(A)(A)+1 ,以下类同。 INC Rn INC direct INC @Ri INC DPTR 例1、设(R0)= 7FH;(7EH)= 40H

执行:INC @R0 INC R0 INC @R0 后, (R0)= 7FH; (7EH)= 00H; (7FH)= 41H. DA A ;二——十进制调整指令。 执行过程中,CPU能根据加法运算后,累加器中的值和PSW中的AC及C标志位的状况自动选择一个修正值(00H、06H、60H、66H)与原运算结果相加,进行二——十进制调整。 选择修正值的规则: (A3 ~ 0)> 9时或(AC)= 1时,(A3 ~ 0)(A3 ~ 0)+6 (A7 ~ 4)> 9 或(C) = 1时,(A7 ~ 4)(A7 ~ 4)+ 6 例2、设(A)= 56H 为56的压缩的BCD码数,(R3)= 67H,(CY)=1 执行ADDC A,R3 DA A 结果为:124 注意:1)DA指令只能跟在加法指令后面使用; 2)调整前参与运算的两数是BCD码数; 3)DA指令不能与减法指令配对使用,但可以实现对A中压缩BCD 减一操作。 例3、设(A)=30H(压缩BCD码数),执行: ADD A,#99H DA A 后,便实现了30 -1 = 29的操作。 例4、两个4位BCD码相加,一个存放在(31H)(30H);另一个存放在 (33H)(32H);和数拟回存在(31H)(30H)中,试编程实现之。 解:MOV R0,#30H MOV R1,#32H MOV A,@R0 ADD A,@R1 DA A MOV @R0,A INC R0 INC R1 MOV A,@R0 ADDC A,@R1 DA A MOV @R0,A 二、减法指令 SUBB A,Rn ;(A)(A)-(Rn)-(C),以下类同。 SUBB A,direct SUBB A,@Ri SUBB A,#data

算术运算符练习题2 阅读程序写结果

算术运算符练习题2 阅读程序写结果 题1: #include using namespace std; int main() { int x; cin>>x; cout<<"10x="<<10*x< using namespace std; int main() { int x; scanf("%d",&x); printf("8x=%d\n",8*x); return 0; } 输入:4 输出: 题3: #include using namespace std; int main() { int x; cin>>x; y=13*x; cout<<"y="< using namespace std; int main() { int a,b,c; scanf("%d%d",&a,&b); c=2*a+3*b; printf("c=%d",c); return 0; } 输入:2 3 输出: 题5: #include using namespace std; int main() { int m,n; m=7775; n=m%100; cout< using namespace std; int main() { int m,n; m=567; n=m/10%10; printf("%d",n); return 0; } 输出:

51单片机汇编指令集(附记忆方法)

51单片机汇编指令集 一、数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送; MOVC(Move Code)读取程序存储器数据表格的数据传送; MOVX (Move External RAM) 对外部RAM的数据传送; XCH (Exchange) 字节交换; XCHD (Exchange low-order Digit) 低半字节交换; PUSH (Push onto Stack) 入栈; POP (Pop from Stack) 出栈; 二、算术运算类指令(8种助记符) ADD(Addition) 加法; ADDC(Add with Carry) 带进位加法; SUBB(Subtract with Borrow) 带借位减法; DA(Decimal Adjust) 十进制调整; INC(Increment) 加1; DEC(Decrement) 减1; MUL(Multiplication、Multiply) 乘法; DIV(Division、Divide) 除法; 三、逻辑运算类指令(10种助记符) ANL(AND Logic) 逻辑与; ORL(OR Logic) 逻辑或; XRL(Exclusive-OR Logic) 逻辑异或; CLR(Clear) 清零; CPL(Complement) 取反; RL(Rotate left) 循环左移; RLC(Rotate Left throught the Carry flag) 带进位循环左移; RR(Rotate Right) 循环右移; RRC (Rotate Right throught the Carry flag) 带进位循环右移; SWAP (Swap) 低4位与高4位交换; 四、控制转移类指令(17种助记符) ACALL(Absolute subroutine Call)子程序绝对调用; LCALL(Long subroutine Call)子程序长调用; RET(Return from subroutine)子程序返回; RETI(Return from Interruption)中断返回; SJMP(Short Jump)短转移; AJMP(Absolute Jump)绝对转移; LJMP(Long Jump)长转移; CJNE (Compare Jump if Not Equal)比较不相等则转移;

熟悉并使用算术逻辑操作类指令

微处理器原理课实验日志 一、实验题目:熟悉并使用算术逻辑操作类指令 二、实验结果 本次实验的目的是为了让我们熟悉算术运算类指令,熟悉逻辑运算类指令,掌握算术运算类指令对标志位的影响。本次实验分为验证性和操作性,对于验证性实验要求在自己理解程序的基础上去运行程序,查看运行结果。操作性实验要求自己编写程序实现相关要求,最后运行查看结果。 第一个程序是验证性(加法减法指令),代码为: MOV A,#12H MOV R0,#24H MOV 21H,#56H ADD A,#12H MOV DPTR,#4316H ADD A,DPH ADD A,R0 CLR C SUBB A,DPL SUBB A,#25H INC A SETB C ADDC A,21H

INC R0 SUBB A,R0 MOV 24H,#16H CLR C ADD A,@R0 此程序的功能为:熟悉加法减法指令,尤其是ADD与ADDC、还有就是在SUBB中注意什么时候Cy标志位清零的运用;DPH、DPL 的运用等。最后在没有运行程序之前对程序进行简单的运算,累加器A中的数据是0xE0=#83H,程序运算结果如下: 按照实验要求第二个程序代码为: MOV 30H,#34H MOV 31H,#2AH MOV 32H,#0FAH MOV 33H,#48H MOV R0,#30H MOV A,@R0 INC R0 MOV B,@R0 MUL AB MOV R1,A MOV R2,B MOV A,@R0 INC R0 MOV B,@R0 DIV AB MOV R3,A MOV R4,B

本程序的重点是分析乘法中高八位存在B寄存器中和低八位存在累加器A中,除法运算A累加器中存放的是商,B寄存器中存放的余数。所以,分析得到乘法运算中A累加器中存放的是88H,B寄存器中存放是08H;除法运算中A累加器存放的是00H,B寄存器中存放的是2AH.程序运算的结果如下: 按照第三个程序是移位指令代码为: MOV A,#39H CPL A RL A CLR C RRC A SETB C RLC A SWAP A 此程序的运行结果应该是:0C6H、8DH、46H、8DH、D8H。 操作性实验,按照要求书写代码如下:

练习(算术运算及逻辑移位指令3题目)

练习 算术运算与逻辑移位指令 1、若AX=0ABCDH,BX=7F8FH,CF=1。分别执行0886 CPU指令 (1)ADD AX,BX (2)ADC AX,BX (3)SBB AX,BX (3)NEG AX (5)AND AX,BX (6)OR AX,BX (7)XOR AX,BX (8)IMUL BL 后,AX寄存器中的内容,并指出标志寄存器SF、ZF、AF、PF、CF及OF的状态。 2、若CX=6700H,DX=78FFH,CF=1,求分别执行指令 (1)ADD CX,DX (2)ADC CX,DX (3)SUB CX,DX (4)SBB CX,DX (5)AND CX,DX (6)OR CX,DX (7)XOR CX,DX 后,CX和DX中的内容。并指出标志寄存器SF、ZF、AF、PF、CF和OF的状态。 3、X,Y分别为下列各组数,当它们分别进行加、减、AND、OR、XOR运算后,其标志位,SF、OF、CF、PF、ZF的状态如何? (1)X=21H;Y=43H (2)X=9AH;Y=0BCH (3)X=48H;Y=8DH (2)X=54H;Y=54H 4、若AX=98ABH,BX=A8BCH,求执行指令ADD AX,BX后,AX与BX中的内容,并指出SF、ZF、AF、PF、CF和OF的状态。 5、针对下列各条指令执行后的结果,填入目的操作数的值及标志位的状态。 6、若AX=FFF8H,BX=FFFAH,求执行IMUL BX后,DX与AX中的内容,并指出标

志位OF与CF的状态。 7、若AX=FFFEH,BX=FFFDH,求执行指令IMUL BX后,DX与AX中的内容。指出标志位OF与CF的状态。 8、设AL=85H,BL=2AH,均为带符号数,求指令 IMUL BL的执行结果。 9、若AL=78H,BL=87H, (1)求执行指令 ADD AL,BL DAA 之后,AL=?标志位AF=?CF=?并说明BCD码调整情况。 (2)若执行指令SUB AL,BL与DAS后,情况又如何? 10、若AL=75H,BL=48, (1)求执行指令 ADD AL,BL DAA 之后,AL=?标志位AF=?CF=?并说明BCD码调整情况。 (2)若执行指令SUB AL,BL与DAS后,情况又如何? 11、若有一个4字节数,放在寄存器BX间址的内存中(低地址对应低字节),要求这个4字节整数整个左移一位如何实现?右移一位又如何实现? 12、若有一个四字节数,放在寄存器DX与AX中(DX放高16位),要求这个四字节数整个左移一位如何实现?右移一位又如何实现? 13、分别编写一程序使 (1)AX寄存器高3位清0; (2)BX寄存器高3位置1; (3)CX寄存器高4位取反; (4)DX寄存器高3位不变,其余位清0。

8086指令系统精析解析

8086指令系统精析 3.1基本数据类型 1.IA-32结构的基本数据类型是字节(8位)、字(16位)、双字(32位)、四字 (64位,486中引入的)和双四字(128位,Pentium3中引入的)。 2.低字节占用内存中的最低地址,该地址也是此操作数的地址。图:P44 图3-1 3.字、双字、四字的自然边界是偶数编号的地址,字的自然边界是偶数编号的 地址,双字和四字的自然边界地址要分别能被4和8除尽。 4.数据结构要尽可能在自然边界上对齐 5.对于不对齐的存储访问,处理器要求做两次存储访问操作;而对于对齐的访 问,只要进行一次存储访问操作。 6.数字数据类型(学生自学)PPT 3.28086的指令格式 一、指令格式 Label(标号):mnemonic(助记符)argument1(参数1),argument2(参数2),argument3(参数3)其中: 1.标号是一个标识符,后面跟有冒号 2.助记符是一类具有相同功能的指令操作码的保留名 3.操作数的三个参数是任选的,可以有零到三个操作数,操作数参数的数量取 决于操作码 4.操作数参数可能是文字或数据项的标识符,也可能是寄存器的保留名或在程 序的另一部分声明的赋予数据项的标识符。 5.在算术和逻辑指令中存在两个操作数时,右边的操作数是源,左边的操作数 是目的。例如:LOADREG: MOV AX, SUBTOTAL 功能是把由SUBTOTAL表示的源操作数传送至AX寄存器。 3.38086/8088指令的操作数寻址方式

寻找操作数,操作数能定位在指令中、寄存器中、存储单元中以及I/O端口中。 1.立即数 用包含在指令中的操作数作为源操作数,这些操作数即为立即操作数。 立即数可以是8位或16 例1 MOV AX , 2056H 结果( AH ) = 20H ( AL ) = 56H 例2 MOV AL , 78 H 结果( AL ) = 78H 2.寄存器操作数 操作数在寄存器中,指令中指定寄存器名 8 位操作数,用8 位寄存器: AH、AL、BH、BL、CH、CL、DH、DL 16 位操作数,用16 位寄存器: AX、BX、CX、DX、SP、BP、SI、DI CS、DS、SS、ES 例1 MOV AX , 2056H 执行后:(AX)=2056H 例2 MOV BL , AH 执行前:(BL) = 12H, (AH) = 78H 执行后:(BL) = 78H (AH) = 78H ▲立即数寻址、寄存器寻址的操作数,不用在取完指令后再到内存中取数。 ▲以下的 5 中寻址方式,操作数存放在内存中,取完指令后,还需到内存取数。指令中给出的是该操作数的地址,包括段地址和偏移地址。 3. 内存操作数 ▲指令MOV DS: [ DI ] , CL 完成将CL寄存器中的内容传送到以DS为段值,DI为偏移值的内存单元中。例编程将CL寄存器的内容传送到21000H单元中。PPT 地址21000H=2000:1000H ,编程时,DS 存放段地址2000H,DI 存放偏移地址1000H MOV AX, 2000H MOV DS, AX ; (DS) = 2000H

8051单片机常用指令

3.2.1数据传送与交换类指令 共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指 9.堆栈操作 3.2 分类指令 在介绍各条分类指令之前,将指令中的操作数及注释中的符号说明如下。Rn:当前指定的工作寄存器组中的Ro-R7(其中n=0,1,2,…,7)。 Ri:当前指定的工作寄存器组中的RO,R1(其中i=0,1)。 (Ri):Ri间址寻址指定的地址单元。 ((Ri)):Ri间址寻址指定地址单元中的内容。 dir:8位直接字节地址(在片内RAM和SFR存储空间中)。 #data8:8位立即数。 #datal6:16位立即数。 addrl6:16位地址值。 addrll:11位地址值。 bit:位地址(在位地址空间中)。 rel:相对偏移量(一字节补码数)。 下面介绍各条分类指令的主要功能和操作,详细的指令操作说明及机器码形式可见附录。 3.2.1数据传送与交换类指令

共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指 令;数据交换指令以及准栈操作指令。

9.堆栈操作 PUSH dir ;SP十1-6P,(dir)一(SP) POP dir ;((SP))一dir,SP-1--P , 例1 SP=07H,(35H)=55H,指令PUSH 35H执行后,55H送入08H地址单元,SP= 08H。 例2 SP=13H,(13H)= 1FH,指令POP 25H执行后,1FH压入25H地址单元,SP此时为12H。 综合例把片内RAM中50H地址单元中的内容与40H地址单元中的内容互换。方法一(直接地址传送法): MOV A ,50H

《计算机基础》练习及答案

《计算机基础》练习及答案 一、单选题 1.能够准确反映现代计算机的主要功能是 B 。 A.计算机可以实现高速运算 B.计算机是一种信息处理机 C.计算机可以存储大量信息 D.计算机可以代替人的脑力劳动 2.按照计算机的用途分类,可将计算机分为 D 。 A.通用计算机、个人计算机 B.数字计算机、模拟计算机 C.巨型计算机、微型计算机 D.通用计算机、专用计算机 3.工业上的自动机床属于 C 。 A.科学计算方面的计算机应用 B.数据处理方面的计算机应用 C.过程控制方面的计算机应用 D.人工智能方面的计算机应用 4.如果(52)(2A)16,则x为 B 。

A.2 B.8 C.10 D.16 5.下列数中最大的数是 D 。 A.(1000101)2 B.(107)8 C.(73)10 D.(4B)16 6.已知:3×4=14,则4×5= A 。 A.24 B.26 C.30 D.36 7.字节是数据处理的基本单位,1= C 。 A.1 B.4 C.8 D.16 8.存储器容量大小是以字节数来度量,1= B 。 A.1000B B.1024B C.1024× 1024B D.1048576B 9.假设某计算机的字长为8位,则十进制数(-66)10的反码表示 为 C 。 A.01000010 B.11000010

C.10111101 D.10111110 10.假设某计算机的字长为8位,则十进制数(+75)10的补码表示为 A 。 A.01001011 B.11001011 C.10110100 D.10110101 11.假设某计算机的字长为8位,则十进制数(-75)10的补码表示为 D 。 A.01001011 B.11001011 C.10110100 D.10110101 12.我国信息交换用汉字编码字符集-基本集是 C 。 5 2312 13.在下面关于字符之间大小关系的说法中,正确的是 B 。 A.6>b>B B.6>B>b >B>6 >b>6 14.已知:“B”的码值是66,则码值为1000100的字符为 B 。

数学四则运算练习题

数学四则运算练习题 一、填空题 1、()—56+72= 2169 4 ()=108 54 () 5=135 2、将38+53=91,91 13=7,86+7=93这3个算式合并成一个综合算式是: 3、0在除法算式中不能为()。 二、判断题 1、算式180—(92+72)去掉小括号后,计算结果没有变化。() 2、甲数是72,比乙数的2倍少12,求乙数的算式是72。() 3、算式168—(68 2) 3中的.小括号可以省略。() 三、脱式计算 1、5600— 8168 78 20 2、46 (587+962 74) 3、84—4200 (850 17) 4、(765+274) 6—5894 5、613+764+387 6、33+58+77+42—164 四、解决问题 1、小刚和小强赛跑,两人同时起跑,6分钟后,小刚跑了1200米,小强跑了1188米,平均每分钟小刚比小强多跑了多少米?(用两种方法解答) 2、小丽敲一份稿子,前6分钟每分钟敲80个字,由于赶时间,她加快了 速度,后四分钟共敲了400个字,这份稿子她平均每分钟敲多少个字? 3、某机械厂要加工一批小零件,计划每天加工180个,15天完工。为了 提前完成任务,实际每天比计划多加工90个,可以提前几天完成任务? 4、老师让同学们10人一排站队,可同学们错站成了11人一排,结果站了 18排还多了2人。如果按老师的指令站,应站几排? 5、李伯伯从商店购买了20袋饲料,共用了820元,他上网查,这种产品到厂家直接购买每袋32元。李伯伯购买这些饲料比从网上购买多花了多少钱?

6、某摩托车厂9月份生产了570辆摩托车,其中有10辆不合格。合格的产品用大卡车运往各销售网点。一辆大卡车一次可以运35辆,需要运费485元。这些摩托车需要多少辆大卡车才能运完?共需要多少运费? 感谢您的阅读,祝您生活愉快。

8086指令总结

8086指令系统总结 学习微处理器及其程序设计,必须掌握微处理器的指令系统。本章以8086 微处理器为例介绍微型计算机的指令系统,包括指令格式、寻址方式和各类指令功能。要明确各种寻址方式的区别和特点,掌握有效地址和物理地址的计算方法,要正确使用指令,掌握各类指令的功能、对标志位的影响和使用上的一些特殊限制。能够编写小汇编程序,初步掌握汇编程序的编写和调试方法。 本章的重点难点内容是:8086 的指令格式及寻址方式,8086 的常用指令和8086 指令前缀的使用。 下面我们分别进行总结: 一.8086寻址方式 (1)操作数是数字,指令中立即写出数字------------立即数寻址 MOV AX,1234H 解释此句意义 (2)操作数是寄存器内容,指令中写出寄存器的符号---------寄存器寻址 MOV AX,BX (3)操作数是存储单元内容,用括号括出存储单元有效地址-----直接寻址 MOV AX,[1234H] MOV AX,ES:[1234H] (4)操作数是存储单元内容,用括号括出寄存器或其表达式,寄存器或其表达式的值为存储单元有效地址-------------间接寻址MOV AH,[BX] MOV AX,ES:[SI] MOV AL,[BX+SI+5]===5[BX+SI]===5[BX][SI] 二.8086指令系统 1.数据传送指令 (一)通用传送指令 (1)MOV指令 指令格式:MOV 目,源 功能:将源操作数传送给目标操作数。 (2)堆栈操作指令 进栈指令:PUSH 格式:PUSH 源 功能:将源操作数压入堆栈。 例:用堆栈指令完成上例的功能。 MOV AX,3000H MOV DS,AX ;段寄存器填充 MOV SI,0100H ;基本指令执 MOV DI,2000H ;行前的初值 MOV CX,50 NT: PUSH [SI] ;程序从这 POP [DI] ;开始设计 INC SI INC SI INC DI INC DI LOOP NT MOV AH,4CH INT 21H

51单片机指令

3.2 分类指令 在介绍各条分类指令之前,将指令中的操作数及注释中的符号说明如下。 Rn:当前指定的工作寄存器组中的Ro-R7(其中n=0,1,2,…,7)。 Ri:当前指定的工作寄存器组中的RO,R1(其中i=0,1)。 (Ri):Ri间址寻址指定的地址单元。 ((Ri)):Ri间址寻址指定地址单元中的内容。 dir:8位直接字节地址(在片内RAM和SFR存储空间中)。 #data8:8位立即数。 #datal6:16位立即数。 addrl6:16位地址值。 addrll:11位地址值。 bit:位地址(在位地址空间中)。 rel:相对偏移量(一字节补码数)。 下面介绍各条分类指令的主要功能和操作,详细的指令操作说明及机器码形式可见附录。 3.2.1数据传送与交换类指令 共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为目的的操作数的指令;访问外部RAM的指令;读程序存储器的指

令;数据交换指令以及准栈操作指令。 9.堆栈操作 PUSH dir ;SP十1-6P,(dir)一(SP)

POP dir ;((SP))一dir,SP-1--P , 例1 SP=07H,(35H)=55H,指令PUSH 35H执行后,55H送入08H地址单元,SP= 08H。 例2 SP=13H,(13H)= 1FH,指令POP 25H执行后,1FH压入25H地址单元,SP此时为12H。 综合例 把片内RAM中50H地址单元中的内容与40H地址单元中的内容互换。方法一(直接地址传送法): MOV A ,50H 数据传送与交换类指令是各类指令中数量最多、使用最频繁的一类指令,编程时应能十分熟练地灵活运用

单片机指令英文全称

51单片机汇编指令集(指令集带英文翻译) 一、数据传送类指令(7种助记符) MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送; MOVC(Move Code)读取程序存储器数据表格的数据传送; MOVX(Move External RAM)对外部RAM的数据传送; XCH(Exchange)字节交换; XCHD(Exchange low-order Digit)低半字节交换; PUSH(Push onto Stack)入栈; POP (Pop from Stack)出栈; 二、算术运算类指令(8种助记符) ADD(Addition) 加法; ADDC(Add with Carry) 带进位加法; SUBB(Subtract with Borrow) 带借位减法; DA(Decimal Adjust) 十进制调整; INC(Increment) 加1; DEC(Decrement) 减1; MUL(Multiplication、Multiply) 乘法; DIV(Division、Divide) 除法; 三、逻辑运算类指令(10种助记符) ANL(AND Logic) 逻辑与; ORL(OR Logic) 逻辑或; XRL(Exclusive-OR Logic) 逻辑异或; CLR(Clear) 清零; CPL(Complement) 取反; RL(Rotate left) 循环左移; RLC(Rotate Left throught the Carry flag) 带进位循环左移; RR(Rotate Right) 循环右移; RRC(Rotate Right throught the Carry flag) 带进位循环右移; SWAP (Swap)低4位与高4位交换; 四、控制转移类指令(17种助记符) ACALL(Absolute subroutine Call)子程序绝对调用; LCALL(Long subroutine Call)子程序长调用; RET(Return from subroutine)子程序返回; RETI(Return from Interruption)中断返回; SJMP(Short Jump)短转移; AJMP(Absolute Jump)绝对转移; LJMP(Long Jump)长转移; CJNE (Compare Jump if Not Equal)比较不相等则转移; DJNZ (Decrement Jump if Not Zero)减1后不为0则转移; JZ (Jump if Zero)结果为0则转移; JNZ (Jump if Not Zero) 结果不为0则转移; JC (Jump if the Carry flag is set)有进位则转移;

8086指令系统之算术运算类指令

8086 指令系统之算术运算类指令 2007-04-17 07:51 1 加法指令 1.1 加法指令 ADD ADD reg,imm/reg/mem ;reg←reg+imm/reg/mem ADD mem,imm/reg ;mem←mem+imm/reg 2.17a: 例 2.17a:加法运算 mov add mov mov add add al,0fbh ;al=0fbh al,07h ;al=02h word ptr[200h],4652h ;[200h]=4652h bx,1feh ;bx=1feh al,bl ;al=00h word ptr[bx+2],0f0f0h ;[200h]=3742h
ADD 指令按照状态标志的定义相应设置这些标志的 0 或 1 状态。例如 在 07+FBH→02H 运算后:标志为 OF=0、SF=0、ZF=0、AF=1、PF=0、CF=1;用调 试程序单步执行后,上述标志状态依次为 NV、PL、NZ、AC、PO、CY。 同样进行 4652h+f0f0h→3742H 运算后,标志为 OF=0、SF=0、ZF=0、 AF=0、PF=1、CF=1;调试程序依次显示为 NV、PL、NZ、NA、PE、CY。注意,PF 仅反映低 8 位中“1”的个数,AF 只反映 D3 对 D4 位是否有进位。 1.2 带进位加法指令 ADC ADC reg,imm/reg/mem ;reg←reg+imm/reg/mem+CF ADC mem,imm/reg ;mem←mem+imm/reg+CF ;mem←mem+imm/reg+CF 加法运算外, CF, ADC 指令除完成 ADD 加法运算外,还要加进位 CF,其用法及对状态标志的 指令一样。 影响也与 ADD 指令一样。ADC 指令主要用于与 ADD 指令相结合实现多精度 数相加。 数相加。 2.17b: 例 2.17b:无符号双字加法运算 mov ax,4652h ;ax=4652h add ax,0f0f0h ;ax=3742h,CF=1 mov dx,0234h ;dx=0234h adc dx,0f0f0h ;dx=f325h,CF=0 上述程序段完成 DX.AX = 0234 4652H + F0F0 F0F0H = F325 3742H。 1.3 增量指令 INC INC reg/mem ;reg/mem←reg/mem+1 增量)。 INC 指令对操作数加 1(增量)。

习题3-8086指令系统

习题三8086指令系统 主要内容:8086指令系统。主要介绍8086的基本数据类型、寻址方式和指令系统,重点掌握8086指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标志位的影响,串操作指令,控制传送指令。 1.单选题: (1)执行下面指令序列后,结果是(A)。 MOV AL,82H CBW A、(AX)=0FF82H B、(AX)=8082H C、(AX)=0082H D、(AX)=0F82H (2)与MOV BX,OFFSET VAR指令完全等效的指令是(D )。 A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、LEA BX,VAR (3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D )。 A、CMP B、SUB C、AND D、MOV (4)下面指令执行后,改变AL寄存器内容的指令是(D )。 A、TEST AL,02H B、OR AL,AL C、CMP AL,B D、AND AL,BL (5)设DH=10H,执行NEG DH指令后,正确的结果是(D )。 A、(DH)=10H,CF=1 B、(DH)=0F0H,CF=0 C、(DH)=10H,CF=0 D、(DH=0F0H,CF=1 (6)设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是(A )。 A、85B92H B、86192H C、BB690H D、12169H (7)下列指令中,执行速度最快的是(C )。 A、MOV AX,100 B、MOV AX,[BX] C、MOV AX,BX D、MOV AX,[BX+BP] 2.8086 CPU执行如下指令后的结果,以及标志SF、AF、CF、OF的值。 (1)MOV AL,0110 0100B SUB AL,58H ;(AL)=0CH,AF=1 DAS ;(AL)=06H, AF=1 ADD AL,89H ;(AL)=8FH, AF=0 DAA ;(AL)=95H,AF=1,SF=1 结果: (AL)=95H, SF=1, AF=1, CF=0, OF=0 (2)MOV AL,05H MOV BL,09H MUL BL ;(AX)=002DH, SF、AF、CF、OF=0 AAA ; (AX)=0103H ;AAM ; ; (AX)=0405H 结果: (AX)=0103H, CF=1 , SF=0、AF=1、OF=0 3.分析执行下列指令序列后的结果: MOV AL,10110101B AND AL,00011111B ;(AL)=0001 0101B OR AL,11000000B ;(AL)=1101 0101B XOR AL,00001111B ;(AL)=1101 1010B NOT AL ;(AL)=0010 0101B 4.假设(AL)=10101111B,CF=0,CL=2,写出分别执行下列指令后的结果以及标志位CF、ZF、OF的值。 (1)SHL AL,CL ;(AL)=1011 1100B, CF=0、ZF=0、OF=1 (2)SHR AL,CL ;(AL)=0010 1011B, CF=1、ZF=0、OF=0 (3)SAR AL,CL ;(AL)=1110 1011B, CF=1、ZF=0、OF=0 (4)ROL AL,CL ;(AL)=1011 1110B, CF=0、ZF=0、OF=1 (5)RCR AL,CL ;(AL)=1011 1101B, CF=0、ZF=0、OF=1 5.设(IP)= 3D8FH,(CS)=4050H,(SP)=0F17CH,当执行CALL 2000:0094H后,试求出IP、CS、SP的

算术运算指令

算术运算指令 1.ADD A,Rn 将累加器与寄存器的内容相加,结果存回累加器 2.ADD A,direct 将累加器与直接地址的内容相加,结果存回累加器 3.ADD A,@Ri 将累加器与间接地址的内容相加,结果存回累加器 4.ADD A,#data 将累加器与常数相加,结果存回累加器 5.ADDC A,Rn 将累加器与寄存器的内容及进位C相加,结果存回累加器 6.ADDC A,direct 将累加器与直接地址的内容及进位C相加,结果存回累加器 7.ADDC A,@Ri 将累加器与间接地址的内容及进位C相加,结果存回累加器 8.ADDC A,#data 将累加器与常数及进位C相加,结果存回累加器 9.SUBB A,Rn 将累加器的值减去寄存器的值减借位C,结果存回累加器 10.SUBB A,direct 将累加器的值减直接地址的值减借位C,结果存回累加器 11.SUBB A,@Ri 将累加器的值减间接地址的值减借位C,结果存回累加器 12.SUBB A,#data 将累加器的值减常数值减借位C,结果存回累加器 13.INC A 将累加器的值加1 14.INC Rn 将寄存器的值加l 15.INC direct 将直接地址的内容加1 16.INC @Ri 将间接地址的内容加1 17.INC DPTR 数据指针寄存器值加1 说明:将16位的DPTR加1,当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字节(DPH)加1,不影响任何标志位 18.DEC A 将累加器的值减1 19.DEC Rn 将寄存器的值减1 20.DEC direct 将直接地址的内容减1 21.DEC @Ri 将间接地址的内容减1 22.MUL AB 将累加器的值与B寄存器的值相乘,乘积的低位字节存回累加器,高位字节存回B寄存器 说明:将累加器A和寄存器B内的无符号整数相乘,产生16位的积,低位字节存入A,高位字节存入B寄存器。如果积大于FFH,则溢出标志位(OV)被设定为1,而进位标志位为0 23.DIV AB 将累加器的值除以B寄存器的值,结果的商存回累加器,余数存回B寄存器 说明:无符号的除法运算,将累加器A除以B寄存器的值,商存入A,余数存入B。执行本指令后,进位位(C)及溢出位(OV)被清除为0 24.DA A 将累加器A作十进制调整, 若(A) 3-0>9或(AC)=1,则(A) 3-0←(A)3-0+6 若(A) 7-4>9或(C)=1,则(A) 7-4←(A)7-4+6 逻辑运算指令 25.ANL A,Rn 将累加器的值与寄存器的值做AND的逻辑判断,结果存回累加器

8086/8088指令系统

CH02 8086/8088指令系统 习题与思考题 1.假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式?源操作数在哪里?如在存储器中请写出其物理地址是多少? (1)MOV AX,0ABH (2)MOV AX,[100H] (3)MOV AX,V AL (4)MOV BX,[SI] (5)MOV AL,V AL[BX] (6)MOV CL,[BX][SI] (7)MOV V AL[SI],BX (8)MOV [BP][SI],100 解答: (1)MOV AX,0ABH 寻址方式:立即寻址;物理地址:无 (2)MOV AX,[100H] 寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+100H=2000H*16+100H=20100H (3)MOV AX,V AL 寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+V AL=2000H*16+0050H=20050H (4)MOV BX,[SI] 寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS*16+SI=2000H*16+00A0H=200A0H (5)MOV AL,V AL[BX] 寻址方式:变址寻址;源操作数在存储器中;物理地址:DS*16+V AL+BX=2000H*16+0050H+0100 =20150H (6)MOV CL,[BX][SI] 寻址方式:基址加变址寻址;源操作数在存储器中;物理地址:DS*16+BX+SI=2000H*16+0100H+00A0H =201A0H (7)MOV V AL[SI],BX 寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无 (8)MOV [BP][SI],100 寻址方式:立即寻址;物理地址:无 2.设有关寄存器及存储单元的内容如下: DS=2000H,BX=0100H,AX=1200H,SI=0002H,[20100H]=12H,[20101H]=34H,

相关文档
最新文档