汇编小问题

JavaScript044

汇编小问题,第1张

在DOS下的DEBUG命令的详细用法:

名称 解释 格式

a (Assemble) 逐行汇编 a [address]

c (Compare) 比较两内存块 c range address

d (Dump) 内存16进制显示 d [address]或 d [range]

e (Enter) 修改内存字节 e address [list]

f (fin) 预置一段内存 f range list

g (Go) 执行程序 g [=address][address...]

h (Hexavithmetic) 制算术运算 h value value

i (Input) 从指定端口地址输入 i pataddress

l (Load) 读盘 l [address [driver seetor>

m (Move) 内存块传送 m range address

n (Name) 置文件名 n filespec [filespec...]

o (Output) 从指定端口地址输出 o portadress byte

q (Quit) 结束 q

r (Register) 显示和修改寄存器 r [register name]

s (Search) 查找字节串 s range list

t (Trace) 跟踪执行 t [=address] [value]

u (Unassemble) 反汇编 u [address ]或range

w (Write) 存盘 w [address[driver sector secnum>

? 联机帮助 ?

debug小汇编a命令

debug小汇编a命令是一个很有用的功能,许多的小程序都要他来做。

编一些小程序比汇编要来得方便,快洁。

在Debug中,中断是非常有用的,首先,让我们先了解一下中断。

所谓中断,其实,就是,当你做某事时,有人过来找你有其他事,你先放下手中的事(计算机中,称为保护现场)

,再去与叫你的那个人办事去,等完了,你又回,接着做刚才的事。这是个很通俗的讲法。

计算机在运行时,也会出现这种情况,我们叫之中断。

下面是他的一些常用中断向量的入口值详解:(记住哦,很用的...呵呵)

IBM PC 中断 int10

ooH 屏幕方式设置

入口:AH=0,AL=显示方式代码(0--6)

0:40*25 黑白

1:40*25 彩色

2:80*25 黑白

3:80*25 彩色文本

4:320*200 彩色

5:320*200 黑白

6:640*200 黑白图形模式

7:80*25 单色字符(单色显示器)

0BH 色彩设置

入口:AH=0B,BL=0 设背景色,BH=0--15 BL=1 设调色码,BH=0--1

0CH 写图形点

入口:AH=0C,CX:DX=列号:行号,AL=颜色

ODH 读图形点

入口:AH=0D,CX:DX=列号:行号

返回:AL=颜色

0EH 在当前页、当前光标处写字符

入口:AH=0E,AL=字符的ASCII码,BL=前景色

OFH 显示器状态

入口:AH=0F

返回:AL=当前显示器方式,AH=屏幕列数,BH=当前页号

01H 光标设置

入口:AH=1,CH=光标起始行号(00--0C),CL=光标结束行号(00--0C)

注:CH > CL

02H 光标定位

入口:AH=2,BH=页号,DH:DL=起始行:列

03H 读光标位置

入口:AH=3,BH=页号。

返回:DH:DL=起始行:列

06H 窗口上卷

入品:AH=6,AL=窗口上卷行数,CH:CL-DH:DL 窗口坐标

注:AL=0 卷动整个窗口

07H 窗口下卷

入口:AH=7,AL=窗口下卷行数,CH:CL-DH:DL 窗口坐标

08H 读当前光标处字符和属性

入口:AH=8,BH=页号。

返回:AH:AL=字符的颜色:字符的ASCII码

注:颜色代码见下对照表

09H:在当前光标处写字符和属性

注:光标不下移

入口:AH=9,BH=页号,BL:AL=字符的颜色:字符的ASCII码,CX=重复次数

1 2 3 4 5 6 7 8

BL R G B I R G B

闪烁 字符底色 加亮 字符颜色

中断向量号表

中断号 解释 中断号 解释

0 除数为0错 19 引导装入程序

1 音步中断 1A 日时调用

2 不可屏蔽中断NMI 1B 键盘阻断时得到控制权

3 断电中断(CCH) 1C 时钟中断时得到控制权

4 溢出中断 1D 指向CRT初始参数表

5 屏幕打印中断 1E 指向盒带参数表

6-7 保留 1F 1KB图形模式

8 计时器中断(18.2秒) 20 结束DOS程序

9 键盘中断 21 DOS功能调用

A-D 保留 22 结束地址(建义用EXEC)

E 软盘机中断 23 DOS Crtl-Break退出地址

F 保留 24 DOS致命错向量

10 屏幕I/O调用 25 DOS绝对磁盘读

11 设备检查调用 26 DOS绝对磁盘写

12 存储器检查调用 27 结束程序并驻留(建义用31h)

13 软盘机I/O调用 28-3F DOS保留

14 RS-233I/O调用 40-7F 未用

15 盒带机I/O调用 80-85 BASIC保留

16 键盘I/O调用 86-F0 BASIC解释程序用

17 打印机I/O调用 F1-FF 未用

18 ROM-BASIC入口

指令名详解

call 指令(过程调用)(控制指令-长转移)

详解:

段内直接调用

段内间接调用(寄存器)

段内间接调用(存储器)

段间直接调用

段间间接调用

指令名

jmp 指令(无条件转移指令)(控制指令-长转移)

详解:

段内直接跳转

短段内直接跳转

段内间接跳转(寄存器)

段内间接跳转(存储器)

段间直接跳转

段间间接跳转

指令名

ret 指令(过程返回)(控制指令-长转移)

详解:

段内返回

段内返回立即数加于sp

段间返回

段间返回立即数加于sp

na/jnbe 指令(控制指令-短转移) 不小于或不等于时转移

jae/jnb 指令 (控制指令-短转移) 大于或等于时转移

jb/jnae 指令 (控制指令-短转移) 小于转移

jbe/jna 指令 (控制指令-短转移) 小于或等 于转移

jg/jnle 指令(控制指令-短转移) 大于转移

jge/jnl 指令 (控制指令-短转移) 大于或等于转移

jl/jnge 指令 (控制指令-短转移) 小于转移

jle/jng 指令 (控制指令-短转移) 小于或等 于转移

je/jz 指令 (控制指令-短转移) 等于转移

jne/jnz 指令 (控制指令-短转移) 不等于转移

jc 指令 (控制指令-短转移) 有进位时转移

jnc 指令 (控制指令-短转移) 列进位时转移

jno 指令 (控制指令-短转移) 不溢出时转移

jnp/jpo 指令 (控制指令-短转移) 奇偶性为奇数时转移

jns 指令 (控制指令-短转移) 符号位为"0"转移

jo 指令 (控制指令-短转移) 溢出转移

jp/jpe 指令 (控制指令-短转移) 奇偶性为偶数时转移

js 指令 (控制指令-短转移) 符号位为"1"时转移

loop 指令 (循环控制指令-短转移) cx 不为0时循环

loope/loopz 指令 (循环控制指令-短转移) cx 不为0且标志 z=1 时循环

loopne/loopnz 指令 (循环控制指令-短转移) cx 不为0且标志 z=0 时循环

jcxz 指令 (循环控制指令-短转移) cx 为0时转移

★int 指令 (中断指令) 中断指令(后详解)

into 指令 (中断指令) 溢出中断

iret 指令 (中断指令) 中断返回

指令名

shl 指令(逻辑左移)

sal 指令(算术左移)

shr 指令(逻辑右移)

sar 指令(算术右移) 寄存器,1

rol 指令(循环左移) 寄存器,cl

ror 指令(循环右移) 存储器,1

rcl 指令(通过进位的循环左移)存储器,cl

rcr 指令(通过进位的循环右移)(逻辑运算)

not 指令(取反运算)寄存器求反

(逻辑运算)存储器求反

and 指令(与运算) (逻辑运算)

寄存器 and 寄存器 寄存器

寄存器 and 存储器 寄存器

存储器 and 寄存器 存储器

立即数 and 存储器 存储器

立即数 and 累加器 累加器

or 指令(或运算)(逻辑运算)

寄存器 or 寄存器 寄存器

寄存器 or 存储器 寄存器

存储器 or 寄存器 存储器

立即数 or 存储器 存储器

立即数 or 累加器 累加器

test 指令(测试) (逻辑运算)

寄存器 test 寄存器

寄存器 test 存储器

寄存器 test 立即数

存储器 test 立即数

累加器 test 立即数

movs 指令(串传送)(字符串操作指令)

单个传送

重复传送

cmps 指令(串比较) (字符串操作指令)

单个比较

重复比较

scas 指令(串扫描)(字符串操作指令)

单个搜索

重复搜索

lods 指令(装入串)

(字符串操作指令)

单个装载

重复装载

stos 指令(保存串) (字符串操作指令)

单个存储

重复存储

mov 指令(传送字或字节)(数据传送命令)

寄存器与寄存器间传送

存储器与寄存器间传送

立即数传送给存储器

立即数传送给寄存器

存储器传送给累加器

累加器传送存储器

寄存器传送给段寄存器

存储器传送给段寄存器

段寄存器传送给寄存器

段寄存器传送给存储存器

pop 指令(把字弹出堆栈) (数据传送命令)

push 指令(把字压入堆栈)

存储器

寄存器

段寄器

xchg 指令(交换字或字节) (数据传送命令)

寄存器与寄存器交换

存储器与寄存器交换

寄存器与累加器交换

in 指令(端口输入) (数据传送命令)

直接输入

间接输入

out 指令(端口输出) (数据传送指令)

直接输出

间接输出

add 指令(加法)(算术指令)

adc 指令(带进位加法)

寄存器+寄存器 寄存器

寄存器+存储器 寄存器

存储器+寄存器 存储器

立即数+存储器 存储器

立即数+累加器 累加器

inc 指令(加1)(算术指令)

存储器增量

寄存器增量

sub 指令(减法) (算术指令)

sbb 指令(带借位减法)

寄存器-寄存器 寄存器

寄存器-存储器 寄存器

存储器-寄存器 存储器

立即数-存储器 存储器

立即数-累加器 累加器

dec 指令(减1)(算术指令)

存储器减量

寄存器减量

nec 指令(求反,以0减之)

寄存器求补

存储器求补

cmp 指令(比较)(算术指令)

寄存器与寄存器比较

寄存器与存储器比较

寄存器与立即数比较

存储器与立即数比较

累加器与立即数比较

mul 指令(无符号乘法) (算术指令)

imul 指令(整数乘法)

与8位寄存器相乘

与16位寄存器相乘

与8位存储单元相乘

与16位存储单元相乘

div 指令(无符号除法)(算术指令)

idiv 指令(整数除法)

被8位寄存器除

被16位寄存器除

被8位存储单元除

被16位存储单元除

Debug实战

1.查看主板的生产日期,版本

D ffff:05

D fe00:0e

2.模拟Rest键功能

A

:100 jmp ffff:0000

:105

g

3.快速格式化软盘

L 100 0 0 * '插入一张己格式化软盘

W 100 0 0 * '放入一张欲格式化软盘

注:* 分别为:720K e |1.2M id |1.44M 21

4.硬盘格式化两种方法

(1)G=c800:05

(2) A 100

mov ax,0703

mov cx,0001

mov dx,0080

int 13

int 3

g 100

5.加速键盘

A

mov ax,0305

mov bx,0000

int 16

int 20

rcx

10

n fast.com

w

q

6.关闭显示器(恢复时,按任意键)

A

mov ax,1201

mov bl,36

int 10

mov ah,0

int 16

mov ax,1200

int 10

rcx

10

n crt-of.com

w

q

7.硬盘DOS引导记录的修复

在软驱中放入一张己格式化软盘

debug

-l 100 2 0 1

-w 100 0 50 1

把软盘放入故障机软驱中

debug

-l 100 0 50 1

-w 100 2 0 1

-q

8.清coms中setup口令

debug

-a

mov bx,0038

mov cx,0000

mov ax,bx

out 70,al

inc cx

cmp cx,0006

jnz 0106

int 20

-rcx

:20

-nclearpassword.com

-w

-q

注:以上适合super与dtk机,对于ast机,因为他的口令放在coms的4ch-51h地址处,只要将:mov bx,0038 改为: mov

bx,004c即可

9.取消coms的密码(将coms数据清为初始化)

-o 70,10

-o 71,10

-g

-q

10.将硬盘主引导记录保存到文件中

debug

-a

mov ax,0201

mov bx,0200

mov cx,0001

mov dx,0080

mov int 13

int 3

-rcx

:200

-nboot.dat

-w

-q

11.调用中断实现重启计算机(可以成文件)

debug

-a

int 19

int 20

-rcx

:2

-nreset.com

-w

-q

DEBUG主要命令

DEBUG是为汇编语言设计的一种高度工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

一、DEBUG程序的调用

在DOS的提示符下,可键入命令:

C:\DEBUG [D:][PATH][FILENAME[.EXT>[PARM1][PARM2]

其中,文件名是被调试文件的名字。如用户键入文件,则DEBUG将指定的文件装入存储器中,用户可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。

在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序。

二、DEBUG的主要命令

1、显示存储单元的命令D(DUMP),格式为:

_D[address]或_D[range]

例如,按指定范围显示存储单元内容的方法为:

-d100 120

18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G...

18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ....h..M PQVW.

7

18E4:0120 8B

其中0100至0120是DEBUG显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容。如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。

2、修改存储单元内容的命令有两种。

·输入命令E(ENTER),有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为:

-E address [list]

例如,-E DS:100 F3'XYZ'8D

其中F3,'X','Y','Z'和各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容

第二种格式则是采用逐个单元相继修改的方法。命令格式为:

-E address

例如,-E DS:100

则可能显示为:

18E4:0100 89.-

如果需要把该单元的内容修改为78,则用户可以直接键入78,再按"空格"键可接着显示下一个单元的内容,如下:

18E4:0100 89.78 1B.-

这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。

·填写命令F(FILL),其格式为:

-F range list

例如:-F 4BA:0100 5 F3'XYZ'8D

使04BA:0100~0104单元包含指定的五个字节的内容。如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。

3)检查和修改寄存器内容的命令R(register),它有三种格式如下:

·显示CPU内所有寄存器内容和标志位状态,其格式为:

-R

例如,-r

AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC

18E4:0100 C70604023801 MOV WORD PTR [0204],0138 DS:0204=0000

·显示和修改某个寄存器内容,其格式为:

-R register name

例如,键入

-R AX

系统将响应如下:

AX F1F4

即AX寄存器的当前内容为F1F4,如不修改则按ENTER键,否则,可键入欲修改的内容,如:

-R bx

BX 0369

:059F

则把BX寄存器的内容修改为059F。

·显示和修改标志位状态,命令格式为:

-RF系统将响应,如:

OV DN EI NG ZR AC PE CY-

此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如:

OV DN EI NG ZR AC PE CY-PONZDINV

即可,可见键入的顺序可以是任意的。

4)运行命令G,其格式为:

-G[=address1][address2[address3…>

其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。

5)跟踪命令T(Trace),有两种格式:

·逐条指令跟踪

-T [=address]

从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的CS:IP开始执行。

·多条指令跟踪

-T [=address][value]

从指定地址起执行n条指令后停下来,n由value指定。

6)汇编命令A(Assemble),其格式为:

-A[address]

该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如100D。

7)反汇编命令U(Unassemble)有两种格式。

·从指定地址开始,反汇编32个字节,其格式为:

-U[address]

例如:

-u100

18E4:0100 C70604023801 MOV WORD PTR[0204],0138

18E4:0106 C70606020002 MOV WORD PTR[0206],0200

18E4:010C C70606020202 MOV WORD PTR[0208],0202

18E4:0112 BBO4O2 MOV BX,0204

18E4:0115 E80200 CALL 011A

18E4:0118 CD20 INT 20

18E4:011A 50 PUSH AX

18E4:011B 51 PUSH CX

18E4:011C 56 PUSH SI

18E4:011D 57 PUSH DI

18E4:011E 8B37 MOV SI,[BX]

如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。

·对指定范围内的存储单元进行反汇编,格式为:

-U[range]

例如:

-u100 10c

18E4:0100 C70604023801 MOV WORD PTR[0204],0138

18E4:0106 C70606020002 MOV WORD PTR[0206],0200

18E4:010C C70606020202 MOV WORD PTR[0208],0202

-u100 112

18E4:0100 C70604023801 MOV WORD PTR[0204],0138

18E4:0106 C70606020002 MOV WORD PTR[0206],0200

18E4:010C C70606020202 MOV WORD PTR[0208],0202

可见这两种格式是等效的。

8)命名命令N(Name),其格式为:

-N filespecs [filespecs]

命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入存盘。filespecs的格式可以是:

[d:][path] filename[.ext]

例如,

-N myprog

-L

-

可把文件myprog装入存储器。

9)装入命令(Load),有两种功能。

·把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。其格式为:

-L[address[drive sector sector]

·装入指定文件,其格式为:

-L[address]

此命令装入已在CS:5CH中格式化了文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。

10)写命令W(Write),有两种功能。

·把数据写入磁盘的指定扇区。其格式为:

-W address drive sector sector

·把数据写入指定的文件中。其格式为:

-W[address]

此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。如未指定地址则数据从CS:0100开始。要写入文件的字节数应先放入BX和CX中。

11)退出DEBUG命令Q(Quit),其格式为:

-Q

它退出DEBUG,返回DOS。本命令并无存盘功能,如需存盘应先使用W命令。

问题:初学者问一个低级问题,执行debug-a后,如果有一行输入错误,如何更改这一行?

回答:

加入进行如下输入:

D:\PWIN95\Desktop>debug

-a

2129:0100movax,200

2129:0103movbx,200

2129:0106movcx,200

2129:0109

此时,发现movbx,200一句错误,应为movbx,20,可以敲回车返回"-"状态,然后输入:

-a103

2129:0103movbx,20

如果多或者少若干行,不必重新输入,可以用M命令移动后面的程序来去掉或者增加程序空间.

A.程序调用命令

C>DEBUG [D:] [PATH] [FILENAME[.EXT]] [PARM1] [PARM2]

其中,文件名是被调试文件的名字。如未键入文件名。可用DEBUG命令N和L把需要文件装入存储器后再调试。D指定驱动器,PATH为路径,FILENAME为文件名,PARM为命令参数

B.显示存储单元命令

-D [ADDRESS]或 ;ADDRESS 地址

-D [RANGE] ;RANGE 范围

C.修改存储单元内容命令

-E ADDRESS [LIST]

D.检查和修改寄存器内容命令

-R [REGISTER NAME] ;Register name 寄存器名字

E.汇编命令

-A [ADDRESS]

F.跟踪命令

-T [=ADDRESS] [VALUE] ;Value 变量值

G.运行命令

-G [=ADDRESS ] [ADDRESS2 [ADDRESS3]

H.反汇编命令

-U [ADDRESS]

-U [RANGE]

I.命名命令

-N FILESPECS [FILESPECS]

FILESPECS的格式可为[D:][PATH]FILENAME [.EXT]

J.装入命令

-L [ADDRESS[DRIVE SECTOR SECTOR]] ;DRIVE SECTOR 磁盘 扇区

K.写命令

W ADDRESS DRIVE SECTOR

L.退出命令

-Q

Chapter 1-1

救狗的捕兽夹右前方,路边骷髅路牌的斜后方地上:红草。

村中央拿霰弹枪的小屋2F右侧屋顶烟囱口:手枪弹、绕到左侧屋檐:尖晶石。

上锁小屋左侧外墙2块木板中间空隙处:绿草

了望台右方空地右侧栅栏2块木板中间空隙处:手枪弹

农场,长满蛆的臭水缸+堆满死尸小车的小屋后面有个木桶:燃烧弹

晚上和Ashley肩车开门区域,梯子下的小屋里有木箱+木桶:尖晶石+金币

Chapter 1-2

CG后出门右转弯墙角木桶:绿草

JS后拐弯走到底的木桶:红草

要塞半块Emblem 宝箱下的房间里的铁柜:闪光弹

房间外的2个木桶:绿草+金币

出口处的房间后面木桶:金币

房间内的铁柜:黄草+金币

扔爆竹+捕兽夹房间右面壁炉:手枪弹+尖晶石

楼梯出口有左侧下层水池:黑鲈鱼1大4小

村长家写字台抽屉:手枪弹

Chapter 1-3

CG后转身村长画像下的矮柜:绿草

村长家厨房烤箱:茶叶蛋

村长家书房矮柜:金币

村长家出来电锯男村民把守小路,树上鸟窝×2:尖晶石+TMP弹

地下矿道入口处上方的油灯:尖晶石

地下矿道入口处树上鸟窝×2:手雷+随机弹药

教堂门口树上鸟窝:燃烧弹

教堂门口右上方有口钟,击中后可召唤3个村民,共可射击2次召来6个村民,RP好的话可以得到:金币+弹药

和巨人决斗的采石场左侧石堆上:尖晶石

沼泽前躲过滚石原地转身抬头看山崖:尖晶石

沼泽里各处随机游动的小蛇×3:白煮蛋/茶叶蛋/黄金蛋

沼泽过后大门前草丛中的小蛇:白煮蛋/茶叶蛋/黄金蛋

Leon望远镜观看村民抛尸喂鱼CG后,转身右前方树底下:红草

码头边湖里有5条鲈鱼,一颗手雷搞定!捕完后到后面的木屋内存盘再读盘或出入CheckPoint大门,5条鲈鱼刷新,只要Leon有足够的手雷和道具箱空间,或自用或变卖(750PTAS/条),可惜附近没有JS,否则倒是可以无限赚钱。

Chapter 2-1

晚上码头边湖里有限鲈鱼3大4小,到白天坐船的码头原路返回到采石场有寄生犬×4+村民×11:霰弹+银币

湖洞JS小屋右侧上方火把:尖晶石

JS小屋顶跳下楼梯进入柜台内:狙击弹

水坝下山前沿路走到底:木桶(手雷)

沿绳索下山后左转抬头看山崖:尖晶石

第一个村民把守的2F了望台:木桶+手枪弹

瀑布前的2F了望台:木桶(绿草)

夜晚,湖边、沼泽、墓地、矿道、农场、村庄区域的木桶、木箱、鸟窝、固定可见处的道具全部刷新:金币、弹药、尖晶石

教堂入口右转走到底:木桶(闪光弹)

Chapter 2-2

从教堂旁的小屋出来后再进入教堂,有2个弓箭手:5000PTAS+手枪弹

矿道入口上方油灯:尖晶石

村庄了望塔:尖晶石

Chapter 2-3

保卫战石屋外:手枪弹+TMP弹

巨人右路,峡谷左右两边上方平台:木桶×3

电锯姊妹花左路,第一个楼梯下墙角:木桶(金币)

电锯女出场前右方可跳下区域:木桶×2+霰弹

拿到钥匙开铁门进入通道,右边有间小屋,里面有地下室:手雷

打破木板钉着的窗户,翻越走到底,木桶×2:假面の宝石(橙)Red Gem

打字机小屋外右侧:手枪弹

村长战场景的油桶:尖晶石

村长假眼过门后,门口右边:手枪弹

汽车翻车后向前跑,左方木桶×2:蓝晶石+金币

Chapter 3-1

邪教徒投石机炸毁的亭子地上:尖晶石

邪教徒×2看守的地下炮台,木桶×3:蓝晶石+燃烧弹+金币

大炮轰开城门后,JS边红铁门右方的火把:尖晶石

白金剑机关门2F的矮柜:红草

铁爪男牢笼外横梁上:霰弹

铁爪男牢房处,Saddler油画像:5000PTAS

摇柄机关大厅2F弓箭手×2处,大夜壶×2:娃哈哈+金币

倒挂女神像右眼:尖晶石

Chapter 3-2

下水道开闸放水后,踢开栅栏门,楼梯左边水里:蓝晶石

巨斧机关过后,通道右边地上:尖晶石

4幅画像迷题后进入房间,CG后右转开门到2F,墙角地上:黄草

以上房间2F四周:尖晶石+手枪弹+绿草

喷泉处有乌鸦×3、空中乌鸦×8,闪光弹伺候:金币若干

树篱花园迷宫,木桶×4:蓝晶石、金币、绿草、手枪弹

死胡同尽头:尖晶石、黄草

群红宝箱×4:假面の宝石(橙)Red Gem、娃哈哈、霰弹、TMP弹

Chapter 3-3

Salazar卧室床顶:尖晶石

画迷题按铃边地上:麦林弹

Chapter 3-4

Ashley被绑在大厅1F,2F的Saddler油画像:5000PTAS

Ashley单独行动时,地上:尖晶石+黄草

第一个邪教徒房间:绿草

第二个邪教徒房间:蓝晶石+金币

拿手电后打开柜子、拉开抽屉、椅子上:绿草、金币、蓝晶石、尖晶石

转把手房间内抽屉里:蓝晶石、尖晶石、手枪弹

Chapter 4-1

用3块石板开门后,右侧通道2F的Saddler油画像:5000PTAS

二次坐车来到新的区域,下车后左边墙上的“白发老翁”画像:5000PTAS

钉板阵机关房间右上角地上:手枪弹

房间的矮柜:金币

被水蚊掳走前房间,从右边窗户翻到外面阳台,角落地上:红草

塔楼前Leon望远镜CG后,左边的火把:尖晶石

铁爪男×2 KO后,木门后左右两边的胸像:尖晶石×2

坠入下水道后,往前走2步的尸体:蓝晶石

2F的下水道,第一个出水口:尖晶石,右边地上:红草

倒数第二个出水口:蓝晶石

第二条通道左边房间地上:TMP弹

Chapter 4-2

采矿场前,拿火把村民×2处的采矿车:蓝晶石

电锯男跳下处的采矿车:蓝晶石

巨人的遗产:15000 PTAS

水蚊盘踞的地下溶洞地上:绿草×3、闪光弹、霰弹、TMP、手枪弹、红草

Chapter 4-3

城堡遗迹,大树上的鸟窝:尖晶石

2F平台上的木桶:绿草

桌子上:尖晶石

井里:蓝晶石

地上:金币

墓地:蓝晶石×2

第二个铁板阵的石棺内:金币×3箱

门口左边地上:手枪弹

铁板阵后的漏沙圆形场地,左边地上:尖晶石

Chapter 4-4

塔楼1F左边拐弯走到底红宝箱:黄草

坐电梯前沿路走到底:绿草

Salazar BOSS战CG后跳到正下方的空地,退后贴墙,马上会有3只蜘蛛状寄生兽爬过来,轻松解决后出现随机弹药。站在原地不动,可以避开2条触手和脑袋的轮番攻击,而合体根部的树洞会源源不断地无限钻出寄生兽……打死后有1/5~1/3的机率掉子弹,手枪弹最多。

Chapter 5-1

上岛后沿着左路一直走到底,爬上两层平台,木箱:翡翠

跳过壕沟前先打碎探照灯,避免被佣兵提前发现。

黄金圣猫像的山洞里,出口右边的箱子上:翡翠

红色大小铁箱:燃烧弹×2、TMP弹、狙击弹、手枪弹

被敌人囚禁CG后转身,铁柜:5000PTAS!

反复开启的铁闸门,2个抽屉里:霰弹+翡翠

第一个橡皮人躺的实验室玻璃橱窗:翡翠

垃圾处理场铁箱上:翡翠

带刺橡皮人试验室橱窗内:TMP弹、红草、绿草

铁箱内:霰弹+狙击弹

通信塔铁梁上乌鸦×6:5000PTAS、闪光弹、手枪弹、金币

Chapter 5-2

JS处的矮柜:红草

Chapter 5-3

Ashley被Saddler掳走的房间,楼梯左下角地上:5000PTAS

锅炉房前的楼梯转角,打碎头顶上的一块玻璃:翡翠

Saddler的宝座上:翡翠

有JS的坑道,下楼梯后往前走几步,转身抬头洞顶:翡翠

第一次和Krauser QTE的土屋2F:闪光弹+TMP弹

开关铁门旁的土屋2F:手雷

Chapter 5-4

路口的正方形碉堡里:手雷

第一个机枪男下方:木桶

第二个机枪男下方道路墙角:黄草

小红帽机枪男把守闸门开关,下方帐篷里:5000PTAS、红草、绿草、TMP弹

Mike直升机被RPG击落处,石柱顶端:翡翠×2

打字机边上的抽屉:麦林弹

绿色小铁箱:霰弹

右拐弯走到底:黄草

隐藏元素

1、下车以后向反方向走,两个警察会告诉你走错方向了,如果向他们开枪的话,他们会说话阻止你,多远距离都一样(反应这么快居然还会被袭击…)

2、干掉一开始的李老汉后出屋,向来时的方向走到悬崖边可以看汽车被撞毁的样子…

3、一开始的白狗是打不死的,向它开枪也没用。救了它会在第一次打巨人的时候来帮你。

4、一开始的村里有牛,如果离近了用刀砍牛头会被牛攻击…

5、鸡蛋可以装备,不知道的自己去试试什么效果~

6、商人可以干掉(但是却不能抢武器?),不过一个地方的商人死了后就再不会出现了,下一周目也不会(这个本人没证实)…

7、干掉乌鸦后经常会得到好东西,见到大群的乌鸦不要用枪打,用闪光雷~

8、一开始被村民围殴的地方有两个电锯人,第一个在左边的门前(下一步要走的地方),干掉后得到一个价值10000块的红宝石。另一个在Leon进入房间后出现,干掉后有10000块。但是如果直接进入房间的话第一个电锯人就消失了,所以要两个都拿的话就要先去干掉第一个(在此之前先估计一下自己的实力)…

9、从村长房间出来后会发生被村长扁的剧情,之后会过版。下一章开始后返回村长的房间还会有剧情。

10、教堂上有一个大钟,向钟射击的话可以引来一些村民~

11、调查教堂大门或直接从右边走的话都会和Hunnigan通信,但内容是不一样的~

12、打湖主之前往左边山头上走可以看见湖主吃人的画面~

13、站在打湖主之前那个码头上朝水里开几枪会有时间发生(提前存盘,别怪我没提醒)…

14、打完湖主后回到原来那个码头的场景,会有一段变异狗出现的画面。

15、和Luis抵挡村民时疯狂向Luis开枪会被反击(记得提前存盘)…

16、城堡中有一个场景Leon上到2楼发现1楼有许多教徒在搞什么仪式,杀掉的话会掉宝石,但是一开枪,所有人都会跑,扔刻雷就全搞定了~

17、Sallazar花园的旁边有一个房子一开始进不去,救了Ashelly再来可以让Ashelly从旁边的小窗户爬进去开锁,里面有一只“Broken Butterfly”和不少好东西~

18、Ashelly被飞虫抓走的地方,房间的正上方有一个巨大的寄生体,这个是可以打掉的,好处多多~

19、如果将总BOSS的四只眼睛全部打掉,之后获得的奖金是40万而不是10万

20、普通武器也是可以干掉Saddler的,Ada扔的火箭筒如果留到下一周目可以卖30000块,是普通火箭筒的2倍。

21、最后骑摩托艇带Ashelly脱出时,在类似跳板的地方L+R一起按可以翻跟头~

22、通关一遍后标题画面的背景会改变,按C键可以移动背景画面,按R键可以放大缩小。

23、Assignment Ada模式通关后的字幕背景中,有Ada穿2代的短裙装在正式游戏中出现的画面,但实际上正常游戏中是无法见到的~

24、有人用小刀划过鸡蛋吗?杀死蛇后出的蛋,先不要拿,再用小刀划划……

25、里昂装备“风衣+打字机”,第一,二,三次装弹是整理礼帽的姿势,连续装弹,第四次,变成抛帽摆pose的姿势。

26、会扔燃烧弹的村民。在第一次村民围攻战中,如果上到村里那个最高的塔楼上不下来,村民会往里面扔燃烧弹,因为空间狭窄,所以~嘿嘿。这好像是游戏里敌人唯一会用燃烧弹的地方

27、第一次从教堂带出阿修丽后,返回教堂,杀死左边的那个射箭兵掉5000元。

28、教堂上面有个大钟,往钟射击会发出钟声,然后……哼哼

29、矮子雕像后,盘旋楼梯这儿,上到落桶那一层,下面会来增援。返回底下,杀死那个负责指挥的掉5500大元。

30、第一次卡车遭遇+身后增援村民那儿,卡车翻倒以后,继续往前走会有N个村民破门而入,但是如果转过身体面向大门倒退行走的话,会发觉无论走多远不会有村民冲进来。

31、如何不被蛇咬?划箱子的时候,刀口向下点,然后闭上眼,划两下。然后再睁开眼,完事。目前只有一处不行,就是城堡打完,会从绳子上降下,对面有两个木桶,右边的是蛇,只能用手枪解决。

32、首次见到的带寄生体的村民,将其打死可得到5000大元。

33、跟Luis抵抗村民的时候猛打他会有动画。

34、第一次坐船的地方,如果向水面连射6枪的话就会有事件发生。如果站在岸上或船上不动两分钟,哈哈……

35、第一次打巨人的地方有一群乌鸦,开门后装备闪光,向乌鸦扔去……蹦蹦跳跳去捡宝,还再送一个闪光给你作补尝。

36、游戏中一共有三幅最后BOSS(Saddler)的画像里面都有5000金,第一幅在第一次打铁爪男上面那个过道,第二幅在用狙救阿修丽那个回形走廊,第三幅在第一次见到小孩的地方(集齐三块石块后石门打开后进入的大厅)右手边上去那幅画,花瓶里有个手雷。

37、3-2从下水道回来后会看到下面有一个红衣主教和十个教徒在举行仪式,如果向下扔一个手雷或一发火箭,会有意想不到的收获。

38、4-1那个巨大的虫巢可以打下来,会给你珍贵的东西。

39、4-2矿井中的巨石路障可以直接用火箭筒击碎。

40、最后那个满是“大虫”的空旷地带,一旦进入烧开的门,它们便跟不进来,只能在外面干着急。

41、到最深处的铁塔上可以触发求救的剧情。

42、5-3那个有激光的走廊,前两处都可以一直冲过去而丝毫不用停顿。

43、“激光走廊”后面房间的椅子可以坐,不过会看到催促的话。

44、最后乘摩托艇逃离的时候,按住L+R,便可从“跳板”处翻跟头。第一处为后空翻,后面都是侧空翻。

45、如果是二周目,并省下了前次ADA给的特殊弹火箭筒,便可秒杀Saddler。

Chapter 1-1の隐藏敌人和隐藏宝藏

Leon下车后可分别与“烟民”与“小便男”对话

如果Leon往身后的木桥方向走,“小便男”会劝阻Leon走错了方向

Leon如果用枪瞄准他们,在按下A键时他们会与Leon对话

刚一进村,半路上会看到3只乌鸦,左边地上和右边树上的乌鸦打4后得到的是PTAS,右边地上的乌鸦打4后会得到尖晶石Spinel。如果没有狙击枪想一次打4所有的乌鸦有点难度,无论飞跑几只,请到前面的木屋内存盘再读盘,然后转身返回村口,会惊喜地发现飞跑的乌鸦又停在了原处。打字机的木屋附近有2只乌鸦,右边树上的乌鸦打4后有一颗手榴弹。

打4“李老汉”及3个村民后,可回到村口站在悬崖边调查,可看到车毁桥断。

处置路边的白狗有5种方案:

1. 按A键HELP帮助白狗脱身

2. 用任何武器瞄准白狗射击,击中无敌白狗后自动脱身

3. 用任何武器瞄准捕兽夹射击,击中后白狗自动脱身

4. 用小刀向下捅白狗或者捕兽夹,击中后白狗自动脱身

5.54白狗的存在,飘过(在第一次El Gigante战时,伤害BOSS到一定程度白狗不会出现)半路上的白狗无敌,帮助脱身后在第一次El Gigante战时,伤害BOSS到一定程度白狗会现身报恩。

一周目时在过木桥时会发现对面的山坡上站着3个村民,到二周目时他们却消失了,难道怕Leon手中的狙击枪?

在过第一道铁门前的8个村民不知道为什么打4后不会自动化尸,难道忘带化尸水了还是系统设定有误?因为只有电锯男(女)、异教教徒首领等小BOSS以上的敌人被打死后尸体才不会化为乌有。

村中央左边过关必经的铁门前会站着电锯男+2村民,有技术和实力的玩家可以考虑打4电锯男拿到价值10000PTAS的红宝石Ruby。但是一旦进入村中央的木屋触发事件CG后,再回到过关必经的铁门前时,隐藏的“断头三人组”将不会出现。

村中央打4敌人后会出现三色光圈,请尽快捡起来,因为时间一到,钟声一响起触发事件等看完CG后地上所有的东东将会消失。因为打4敌人后出现的三色光圈均有1分钟的时间限制,时间过后会象人参果一样遇土而入。

村中央有1头奶牛、母鸡若干只;农场有6头奶牛+黄牛、母鸡若干、黄狗1只(无敌)。母鸡1刀或1枪毙之,牛9刀或5枪(火力1.0)杀之,攻击牛头时,牛怒了会用牛角攻击Leon!

有空的话可以在村中央和农场之间来回跑收集白煮蛋、茶叶蛋和黄金蛋,RP好的话不出半个小时就可以鸡蛋满仓了,可惜附近没有JS收购(白煮蛋300、茶叶蛋600、黄金蛋3000),否则倒是可以无限赚钱!二周目有了XL号道具箱就爽了,只要功夫深,鸡蛋堆满仓,120个三色鸡蛋全收。

农场门口有一化粪池(里面布满了孑孓),有技术的玩家可以考虑直接击落珍珠项链Pearl Pendant①(游戏中一共可以得到2条项链),在落下经过Leon正前方的瞬间按A键接住,成功率极低!

农场有扇需要Leon和Ashley二人协力才能通过的木门,附近有2个木箱和1个木桶,可以拿取2次物品(晚上再来时木箱和木桶又复原了)。

经过村庄农场后会经过落石峡谷,躲避巨石时必须及时按L+R组合键或者A+B组合键,系统随机选择组合按键,必须按组合键的CG事件剧情不能通过按Start/Pause键跳过。

躲避巨石后往回走,抬头向上看会看到一座木桥,木桥上站着2个隐藏村民,想追求高杀敌数的玩家,可以考虑灭之。

村中央拿到霰弹枪的木屋顶上有颗尖晶石Spinel,桥洞顶上有2颗亮晶晶的尖晶石。

Chapter 1-3の隐藏敌人和隐藏弹药

村长房间1楼的W.C.里关着个“小便民”,Leon有空的话可以顺便送他早点上路。

从村长家出来打4电锯男后,在木屋前的树上有个鸟窝,击落后可以得到一颗尖晶石Spinel;在木屋后的树上也有个鸟窝,击落后可以得到50发TMP子弹。

击落地道口上的油灯后可以得到一颗尖晶石Spinel。击落地道内的油灯后可以得到2颗尖晶石和雅致的头饰Elegant Headdress①(游戏中一共可以得到2个头饰)

JS毕竟是普通人,1刀或1枪就OVER了,坐在柜台里的JS小刀够不着,他4后即使在二周目该区域的JS也是不会复活的。

爬出地道后向前走几步,树上有一只鸟窝,击落后可随机得到手榴弹/手枪子弹/狙击枪子弹。

墓碑上的3只乌鸦惊飞后在墓地及教堂天空中徘徊,神枪手可以顺便在此练练枪法。

教堂门口右边的树上也有一只鸟窝,击落后可得到一颗燃烧弹。

教堂右边顶上有一口钟,击中后会从墓地方向引来3个村民,共可射击2次召唤6个村民,RP好的话可以赚到不少道具,射击第3次后无效。

Leon调查教堂大门发现门被锁住后会触发与眼镜MM Hunnigan的无线电对话,如果Leon不去调查教堂大门直接走边上的小路时也会触发Hunnigan的CG ,只不过对话的内容不同而已。

农场7枚,墓地8枚共15枚蓝奖章Blue Medallions(在地图上以蓝色的●Sub Mission图例显示)全部击落后可在JS处免费购得一把火力Lv.2的Punisher,可以一枪两个洞同时打穿两个敌人(可卖15000PTAS);击落大于等于10枚小于15枚得到一把火力升到Lv.1的Punisher(可卖10000PTAS)。一周目Red9入手前建议使用火力Lv.2 的Punisher代替初始的手枪Handgun,二周目入手Punisher后可以马上卖掉套现。

教堂边上的木桥有几个缺口需要Leon跳跃通过,有空的话可以欣赏到“自由落体”的真人表演。

Chapter 2-1の隐藏矿石&隐藏敌人

Leon醒来后走出木屋已是半夜,先到码头捕鱼,RP好的话可以捕到3大5小黑鲈鱼,此时“鱼叔”已经重伤在身,即使用火箭筒打鱼也不会招来灭顶之灾的。惜弹如金的玩家也可以用鱼叉扎鱼,晚上比白天好扎多了,白天打好了基础,晚上就易如反掌了,嫌麻烦就扔颗手榴弹吧,燃烧弹无效。我捕完了鱼意犹未尽,2鱼叉把码头上的火炬也扎灭了。

鲜鱼满仓后可运到白天关闭的湖洞JS处贩卖,可惜晚上不能通过反复存盘+读盘无限捕鱼,否则一周目就可以兵强马壮地虐民了!在JS二楼的3个木桶中有颗绿色珠宝Green Gem①(整个游戏中共有2颗)。2枪把木屋二楼右边的火炬打灭,可以捡到一颗隐藏的尖晶石Spinel哟!

想多杀敌+多拿些弹药的玩家可以坐船回到白天上船的码头,此时码头边已没有鲈鱼,但是木屋的桌上会重现一盒手枪子弹。白天破坏的木桶、木箱虽然已经复位,但是绝大多数都是空的,白天打碎的树上鸟窝也是空空如也,不打也罢。

继续往回走可以多看到一段CG动画,4条寄生狗提前登场了!被它扑倒咬一下可不是好玩的,安全无伤害的打法是逐一引诱到码头边,然后登上摩托艇2~3鱼叉扎死,其中有条寄生狗打4后可以得到一盒银币。扎得顺手了,又把码头上的火炬扎灭了。

沿着原路一路杀回去,除了多杀些村民外还可以得到些弹药补给。一直回到15只乌鸦群处就可以直接K.O. El Gigante了。但是因为没有Round Insignia圆形纹章通关道具,所以还得原路回到Chapter 2-1起点处重头再来。

村民爆头后的寄生兽的弱点在颈部,二周目用红外线瞄准镜可以看到在村民的颈部有块红色的区域,用狙击枪一枪命中该区域即可秒杀寄生兽。离寄生兽近了,它也会发动秒杀技,美版中可以看到Leon被断头!

从悬崖上顺着绳索下来后原地转身,在悬崖上有颗亮晶晶的尖晶石Spinel。

游戏中共有2种梯子:固定的铁梯和不固定的木梯。以逸待劳的杀敌法是登上铁梯,然后在上面守梯待敌,有耐心的可以等敌人一探头马上用小刀捅,想速战速决的可以用手枪或者霰弹枪;如果是木梯的话就可以等敌人爬到最高处时把梯子推倒,把敌人摔个眼冒金星趴在地上半天爬不起来,反复几回合就可以无伤害敌全灭。

如果场景中有悬崖、水池的话也可以守在边上,等敌人靠近时开枪射脚,击中的话敌人都会应声落水(崖),可以节省不少弹药,唯一的遗憾就是得不到敌人身上的物品了,世事难两全。

拿到Round Insignia圆形纹章后来到码头,空中有10只蝙蝠在飞舞,想练刀法的话可以一刀一只全灭,可惜没有物品掉下。

static void Main这些东西我忽略不写了,给你最关键的“一针见血”的东西: 1)string[]strings = File.ReadAllLines(你的文本文件绝对路径)2)假设你的文本文件内容如下:123345343888999……若干个数字 解决方法:string[]strings = File.ReadAllLines(你的文本文件绝对路径)int sum = 0foreach(string num in strings){ sum+=Convert.ToInt32(num)}//存盘到C:\result.txt下File.WriteAllText("C:\\result.txt",sum.ToString())3)假设你的文本文件如下:ChinaAmericaCubaRussia…… 解决方法:string[]strings = File.ReadAllLines(你的文本文件绝对路径)List<string>countries = new List<string>()countries.AddRange(strings)countries.Sort()foreach(string s in countries){ //输出s}