关于为啥用的手写水印 因为被查重到后是0分 希望大家可以认真去操作实践以下 不要直接拿原图啊啊啊啊啊啊啊啊
五、实验步骤
一、DOS常用命令练习:
1、使用dir查看文件列表
输入dir:
图5-1 输入dir
回车后结果:
图5-2 输入dir回车后结果
2、用命令 COPY DEBUG.exe BUG 复制一个文件。
图5-3 复制文件
3、用命令 RENAME BUG BG 将BUG 文件改为BG。
图5-4 将BUG文件名改为BG
4、用命令 DEL BG 将文件BG删除。 在操作时要注意提示信息,并按提示操作。
文件已被删除:
图5-5 文件列表已经无BG文件
二、DEBUG 命令使用:
1、打 DEBUG 进入 DEBUG 控制,提示苻 '_ '。
图5-6 进入DEBUG控制
2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。
图5-7 将'A'的ASCII码填入内存
3、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。
图5-8 命令 D100 10F执行后结果
5、用命令 F110 11F 41 重复上二项实验,观察结果并比较。
用命令 D110 11F 观察内存中的16进制码及屏幕右边的ASCII字符:
图5-9 命令D110 11F
用命令 F110 11F 41 重复上二项实验:
图5-10 命令F110 11F 41
发现内存中的16进制码变为41,屏幕右边的ASCII字符变为A。
5、用命令 E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?
答:键入的 16 进制数是 ASCII 码中的数字和一些特殊字符:0123456789:;<=>?
图5-11 命令 E100 30 31 32 …… 3F
6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:
(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH
- :(注:左边结果是相加结果 右边是相减结果)
以上结果均和手算结果相同。
7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF 和AF的内容。
AX=0000,BX=0000,CX=0000,DX=0000,IP=0100;
ZF=0,CF= 0,AF=0;
图5-17 R 命令检查各寄存器内容
8、用R命令将AX,BX内容改写为1050H及23A8H。
图5-18 R命令更改AX,BX内容
三、8086常用指令练习
1、传送指令
1)用A命令在内存100H处键入下列内容:
MOV AX,1234
MOV BX,5678
XCHG AX,BX
MOV AH,35
MOV AL,48
MOV DX,75AB
XCHG AX,DX
图5-19 A命令在内存100H键入内容
- 用U命令检查键入的程序并记录,特别注意左边的机器码。
图5-20 U命令检查键入的程序
- 用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。
MOV AX,1234:
AX变为1234 IP变为0103 标志位无变化
图5-21 MOV AX,1234
MOV BX,5678:(因为下面的就是输入进去 截图 我就不放图了)
BX变为5678 IP变为0106 标志位无变化
图5-22 MOV BX,5678
XCHG AX,BX:
AX变为5678,BX变为1234, IP变为0107,标志位无变化
图5-23 XCHG AX,BX
MOV AH,35:
AX变为3578,IP变为0109,标志位无变化
图5-23 MOV AH,35
MOV AL,48:
AX变为3548,IP变为010B,标志位无变化
图5-24 MOV AL,48
MOV DX,75AB:
DX变为75AB,IP变为010E,标志位无变化
图 5-25 MOV DX,75AB
XCHG AX,DX:
AX变为75AB,DX变为3548,IP变为010F,标志位无变化
图5-26 XCHG AX,DX
2、加减法指令:
1)用A命令在内存100H处键入下列内容:
MOV AH,34
MOV AL,22
ADD AL,AH
SUB AL,78
MOV CX,1284
MOV DX,5678
ADD CX,DX
SUB CX,AX
SUB CX,CX
图5-27 A命令在内存100H处键入上列内容
- 用U命令检查键入的程序及对应的机器码。
图5-28 U命令检查键入的程序及对应的机器码
- 用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。
MOV AH,34:
AX = 34AB ,ZF = 0,IP=0102
图5-29 MOV AH,34
MOV AL,22:
AX = 3422 ,ZF = 0,IP=0104
图5-30 MOV AL,22
ADD AL,AH:
AX=3456, IP = 0106 ,ZF = 0
图5-31 ADD AL,AH
SUB AL,78:
AX=34DE,IP=0108,ZF=0
图5-32 SUB AL,78
MOV CX,1284:
CX=1284,IP=010B,ZF=0
图5-33 MOV CX,1284
MOV DX,5678:
DX=5678,IP=010E,ZF=0
图5-34 MOV DX,5678
ADD CX,DX:
CX=68FC,IP=0110,ZF=0
图5-35 ADD CX,DX
SUB CX,AX:
CX=341E,IP=0112,ZF=0
图5-36 SUB CX,AX
SUB CX,CX:
CX=0000,IP=0114,ZF=1
图5-37 SUB CX,CX
36252222222图5-38 用R命令检查一下IP的内容
3、带进位加减法:
1)用A命令在内存200H处键入下列内容,并用U命令检查:
MOV AH,12
MOV AL,84
MOV CH,56
MOV CL,78
ADD AL,CL
ADC AH,CH
MOV DH,A7
MOV DL,58
SUB DL,7F
SBB DH,34
图5-39 用A命令在内存200H处键入上列内容
图5-40 U200
- 用T命令逐条运行这些指令,检查并记录有寄存器及CF内容。
MOV AH,12:
AX=12DE ,CF=0
图5-41 MOV AH,12
MOV AL,84:
AX=1284,CF=0
图5-42 MOV AL,84
MOV CH,56:
CX=5600,CF=0
图5-43 MOV CH,56
MOV CL,78:
CX=5678,CF=0
图5-44 MOV CL,78
ADD AL,CL:
AX=12FC,CF=0
图5-45 ADD AL,CL
ADC AH,CH:
AX=68FC,CF=0
图5-46 ADC AH,CH
MOV DH,A7:
DX=A778,CF=0
图5-47 MOV DH,A7
MOV DL,58:
DX=A758,CF=0
图5-48 MOV DL,58
SUB DL,7F:
DX=A7D9 ,CF=1
图5-49 SUB DL,7F
SBB DH,34:
DX=72D9,CF=0
图5-50 SBB DH,34
- 上面这段程序若改用16位操作指令达到同样结果,怎么改?试修改并运行之。
修改后程序:
MOV AX,0012
MOV AL,84
MOV CX,0056
MOV BH,78
ADD [SI],CL
ADC CX,CX
MOV DX,A7
MOV DL,58
SUB DX,7F01
SBB DX,34
图5-51 修改后程序
图5-52 运行结果
4、BCD码加减法
1)内容:
MOV AL,58
ADD AL,25
DAA
2)要求:用A 命令键入,U命令检查,T命令逐条运行并记录有关寄存器及Flags内容。
图5-53 A命令键入
图5-54 U命令检查
MOV AL,58:
AX=0058,Flags无变化
图5-55 MOV AL,58
ADD AL,25:
AX=007D,PF = 1
图5-56 ADD AL,25
DAA:
AX=0083,SF = 1,AF=1,PF=0
图5-57 DAA