Assembly language 检测点2.1
本帖最后由 狂潮丶 于 2018-5-9 11:09 编辑检测点 2.1
(1) 写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 AX=F4A3H
mov ah,31H AX=31A3H
mov al,23H AX=3123H
add ax,ax AX=6246H
mov bx,826CH BX=826CH
mov cx,ax CX=6246H
mov ax,bx AX=826CH
add ax,bx AX=04D8H
mov al,bh AX=0482H
mov ah,bl AX=6C82H
add ah,ah AX=D882H
add al,6 AX=D888H
add al,al AX=D810H
mov ax,cx AX=6246H
Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.
C:DOCUME~1ADMINI~1>debug
-a
0C1C:0100 mov ax,f4a3
0C1C:0103 mov ah,31
0C1C:0105 mov al,23
0C1C:0107 add ax,ax
0C1C:0109 mov bx,826c
0C1C:010C mov cx,ax
0C1C:010E mov ax,bx
0C1C:0110 add ax,bx
0C1C:0112 mov al,bh
0C1C:0114 mov ah,bl
0C1C:0116 add ah,ah
0C1C:0118 add al,6
0C1C:011A add al,al
0C1C:011C mov ax,cx
0C1C:011E
-r
AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100 NV UP EI PL NZ NA PO NC
0C1C:0100 B8A3F4 MOV AX,F4A3
-t
AX=F4A3BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103 NV UP EI PL NZ NA PO NC
0C1C:0103 B431 MOV AH,31
-t
AX=31A3BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0105 NV UP EI PL NZ NA PO NC
0C1C:0105 B023 MOV AL,23
-t
AX=3123BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0107 NV UP EI PL NZ NA PO NC
0C1C:0107 01C0 ADD AX,AX
-t
AX=6246BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109 NV UP EI PL NZ NA PO NC
0C1C:0109 BB6C82 MOV BX,826C
-t
AX=6246BX=826CCX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010C NV UP EI PL NZ NA PO NC
0C1C:010C 89C1 MOV CX,AX
-t
AX=6246BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010E NV UP EI PL NZ NA PO NC
0C1C:010E 89D8 MOV AX,BX
-t
AX=826CBX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0110 NV UP EI PL NZ NA PO NC
0C1C:0110 01D8 ADD AX,BX
-t
AX=04D8BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0112 OV UP EI PL NZ AC PE CY
0C1C:0112 88F8 MOV AL,BH
-t
AX=0482BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0114 OV UP EI PL NZ AC PE CY
0C1C:0114 88DC MOV AH,BL
-t
AX=6C82BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0116 OV UP EI PL NZ AC PE CY
0C1C:0116 00E4 ADD AH,AH
-t
AX=D882BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0118 OV UP EI NG NZ AC PE NC
0C1C:0118 0406 ADD AL,06
-t
AX=D888BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011A NV UP EI NG NZ NA PE NC
0C1C:011A 00C0 ADD AL,AL
-t
AX=D810BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011C OV UP EI PL NZ AC PO CY
0C1C:011C 89C8 MOV AX,CX
-t
AX=6246BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011E OV UP EI PL NZ AC PO CY
0C1C:011E 0B0C OR CX, DS:0000=20CD
-q
检测点2.1
(2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
movax,2 AX=2
addax,ax AX=4
addax,ax AX=8
addax,ax AX=16
Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.
C:DOCUME~1ADMINI~1>debug
-a
0C1C:0100 mov ax,2
0C1C:0103 add ax,ax
0C1C:0105 add ax,ax
0C1C:0107 add ax,ax
0C1C:0109
-r
AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100 NV UP EI PL NZ NA PO NC
0C1C:0100 B80200 MOV AX,0002
-t
AX=0002BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103 NV UP EI PL NZ NA PO NC
0C1C:0103 01C0 ADD AX,AX
-t
AX=0004BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0105 NV UP EI PL NZ NA PO NC
0C1C:0105 01C0 ADD AX,AX
-t
AX=0008BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0107 NV UP EI PL NZ NA PO NC
0C1C:0107 01C0 ADD AX,AX
-t
AX=0010BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109 NV UP EI PL NZ AC PO NC
0C1C:0109 20881615 AND ,CL DS:1516=00
-q
你 debug 用什么跑的 可以文本形式保存下来 大力支持,学完了顺便做题巩固知识。 是呀,有这个栏目,学好后,再多做习题,会学得更好。 错了三道,第一题第一条就错在十进制转十六进制,后面导致两道错 上面 ax=d882
错了两个,第一 add al,6 我算的是ax=d806 而答案是 ax=d882
add al,al ax=d80c ax=d888
下面的我的都用debug 通过了,,
请教高手,, 我把正确 答案写错了,, 第一个是 ax=d888
第二个是 ax=d810 学习了,总是把F的值当成16,没有转0进位!真心感谢楼主详细解答!{:1_1:} 学习学习再学习 之前都搞不懂为什么会是这样的结果的,后来慢慢看,慢慢理解,最后才明白原来是这样的的。。。
谢谢LZ!!!:handshake {:10_280:} 感谢分享
页:
[1]