文档介绍:微机原理实验报告(二、三、四)
实验二
现有(DS)=2000h,(BX)=0100h,(SI)=0002h,
(20100)=12h,(20101)=34h,(20102)=56h,(20103)=78h,
(21200)=2Ah, (21201)=4ch,(21202)=B7h,(21203)=65h。
(初始数据显示)
(完成DS=2000h,bx=0100h,SI=0002h)
(完成20100-20103四个单元的赋值)
(完成对21200-21203四个单元的赋值)
(完成赋值后最终结果)
请说明下列指令执行后,AX寄存器的内容。
(mov ax,1200h,执行后AX=1200h;执行mov ax,[bx]h后AX=3412,因为DS:0100=3412)
(执行MOV ax,[1200]后,由DS:1200=4c2a得AX=4c2a)
(执行mov ax,[bx+1100]即mov ax,1100[bx]后AX=4c2a)
(执行mov ax,bx指令后AX=0100)
(执行指令mov ax,[bx+si]即mov ax,[bx][si]后,AX=7856)
写出下列计算的指令序列,其中X,Y,Z,R,W均为存放带符号数单元的地址。
Z=W+(Z-X)
【MOV AX,[Z]
SUB AX,[X]
ADD AX,[W]
MOV [Z],AX】
(其中假设Z=21,X=10,W=5,则运算结果为16,正确)
Z=((W-X)/5*Y)*2
【 MOV AX,[W]
SUB AX,[X]
IDIV BX;直接是5H无法运算,AX,5可运算但是其实质运算形式为IDIV AX
IMUL BX
IMUL CX
MOV [Z],AX】
(BX、CX分别要被r bx/cx赋值,假设W=21,X=11,Y=BX=5,可得运算结果AX=1E=30)
写出存放在DX和AX中的双字长数求补指令序列。
【NEG DX
DEC DX
NEG AX 】
(设DX=1234H,AX=5678H,其双子长求补得DX=EDCBH,AX=A988H)
4、对照例题****题练****所有算术运算类指令
(加法指令,设AX=A988H,BX=1234H,相加存入AX=BBBC)
(减法指令,相减结果存入AX=A988H)
(乘法指令,设AX=A988H,BX=1234H,相乘存入AX=FFA0H)
(除法指令,设AX=FFA0H,BX=1234H,相除结果存入AX=A988H)
实验三
练****逻辑及移位指令
逻辑指令:
(1),逻辑与指令AND
(假设AX=1234,BX==1230)
(2)逻辑或指令OR
(假设AX=1230,BX=5678,执行OR后AX=5678)
(3)逻辑非指令NOT
(假设AX=1234,执行NOT指令后AX=EDCB)
(4)逻辑异或指令XOR
(假设AX=1122,BX=3344,执行XOR后AX=2266)
(5)检测指令TEST
(测试AL的最高位D7是否为1,设AL=24)
移位指令
(1)算术右移SAR
(将BX=ABCD右移四位得BX=FABC)
逻辑左移SHL
(设AX=1234执行SHL后得AX=2340)
逻辑右移SHR
(设AX=DCBA执行SHR后得AX=0DCB)
练****串操作相关指令,掌握指令及重复前缀的使用规则
(串地址定义与修改)
(E是对字符串地址单元赋值,D 首地址是列表输出字符串列表。)
3.  完成课后****题3-13(编写出程序片段)
在16/32位CPU中标志寄存器的内容进栈指令是pushf,出栈的指令是popf
(进栈指令PUSH和出栈指令POP)
实验四
练****无条件转移例题,观察IP及CS寄存器内容的变化。
(JMP 偏移量,执行之后IP换成偏移量的值,CS为其执行指令的当前代码值。当执行JMP 标号如AX时,对其并没有影响。)
练****条件转移指令,并观察转移与标志位(ZF,SF)等的关系。