鱼C论坛

 找回密码
 立即注册
查看: 3506|回复: 3

请问像一下这个程序,我怎么查看最后首字母是否变成大写了呢,怎么debug呢??谢谢

[复制链接]
发表于 2012-6-23 15:57:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
assume cs:codesg,ds:datasg: d9 K) i. M* @% d# j* f
datasg segment
7 P( {/ o4 t1 ^* D* E8 Y: d  u        db '1.ibm   '
7 ?0 v" k0 P- n/ K+ ~% o4 h# ]        db '2.dec   '$ m% L. `. Y5 C: S( r7 K
        db '3.dos   '$ b  @: D  |. ]: W: P2 B8 ~
datasg ends
: q+ k& o, v( {( a8 I/ E2 g; Z  T
codesg segment
, d! f; H( d; g) {1 n+ ^+ Z1 L  vstart:        mov ax,datasg, D$ X2 L) P4 Y' S
                mov ds,ax
5 E0 l1 I5 ^; g( W* i                mov bx,0
# ~$ i* }0 r1 [; E9 X! g: G                " A7 ]6 c# e$ f2 T( x- C/ R9 b
                mov cx,3
' n( @# ?! y3 [: }$ u) |  O        s:        mov al,[bx+2]' V3 Y+ j+ r" K/ R2 u' Q3 b9 a% Z
                and al,11011111b
# H* e8 b# K5 ^" S. m9 B                mov [bx+2],al
7 X- c3 X) z3 V5 d6 j) T* ?. a! n6 ^                add bx,16$ O. r9 J7 K; g
                loop s
2 }" B" R6 {# Z& d/ j' D. U               
( d# ]8 v5 ^+ R0 G1 u                mov ax,4c00h) R) S- Q2 q$ W7 F6 v
                int 21h& Q7 C# I: j" ]
codesg ends
9 ~0 s* \4 W. o8 P6 }) }' }end start: w4 m/ s- B8 V: W
               
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-1 01:45:59 | 显示全部楼层
这个看小甲鱼的视频呢,不能传图,debug +你的文件名.exe  ,然后-r一下,找到数据段入口,我的是 mov ax,14c0,-g一下 这时显示program terminated normally  ,然后 -d 14c0:0000
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-8 15:43:35 | 显示全部楼层
都过去这么多天了,不知道您解决了没有....$ V* T! J  v# R( T7 z# I$ W& V

3 ?& B% I( R+ a+ J
* W/ g) h: v8 X; E$ ], o4 ?# Z* G4 L$ E) l3 X
debug xxx.exe (xxx是你的文件名) 回车0 }' m7 @! d8 y+ k3 ^( I* Y% [
+ N3 M. G6 m5 [' T
-u  (查看程序的汇编指令) 回车5 h" U  J+ Q( D) g8 g8 @$ u

4 J: O& V8 r4 Emov ax, xxxx (这里的XXXX原本是datasg, 现在变成了实际的datasg段的 段地址, 如: 1234): b, s* g( e" |7 C& q) M0 D
mov ds, ax8 t9 c, p% h) m( A+ o  I0 e
mov bx, 02 i7 ~) E* Y6 N5 `4 y% g2 C8 Y2 y/ j' w
(下面的指令,略)
* U% P% V4 U' I: |
$ F2 t! E4 P; Z3 w8 Z! F9 l; X2 Y5 g-d 1234:0  回车, 就可以看到【程序执行前的数据段的内容】  @" a$ P7 I; N% t+ f4 P9 }

' R( y; C, T, ]! k: V-g (执行程序) 回车,就可以看到【program terminated normally】
" w5 C) T; E0 m- }, Z, m$ Q( x
0 P' a, }" J, _- F然后,再次' a  C5 g1 K+ F1 F
1 @0 o4 Q8 R( ~/ E
-d 1234:0  回车, 就可以看到【程序执行后的数据段的内容】
, v0 W! C. q' a" y$ m
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-28 22:18:22 | 显示全部楼层
我觉得可以在执行程序后1 W, H/ m* M) d$ d
-d  ds+10h:04 ?# O; l, V1 Z$ E( R
看要看的字母的数字 如果大于40小于61就是大写字母。
小甲鱼最新课程 -> https://ilovefishc.com

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-7 16:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表