微机原理 反汇编实例0

5个在汇编中常用的INT 21H系统功能调用:
(1)通过4C功能调用能够结束当前正在执行的程序,返回DOS(Disk Operating System 磁盘操作系统)系统,一般用于汇编程序的结束位置。如下图紫色框中所示。
(2)执行完下面黄色框中的01系统调用后,出现提示输入光标,从键盘输入一个字符并保存其ASCII码到AL寄存器中。
(3)通过02功能可以输出DL寄存器中的字符到显示器。
(4)09功能:输出显示一个以"$"字符结尾的字符串到显示器。
调用方法:

	MOV		AX,字符串所在的段地址
	MOV     DS,AX
	MOV     DX,字符串的首址偏移地址
	MOV     AH,09
	INT		21

执行上面调用,输出以DS:DX为首地址,"$"为结尾的字符串到显示器中。
(5)0A功能:从键盘输入一串ASCII码字符到缓冲区,输入结束为缓冲区的个数或者“回车”字符。
调用方法:

	MOV		AX,缓冲区的首址的段地址
	MOV		DS,AX
	MOV		DX,缓冲区的首址的偏移地址
	MOV		AH,0A
	INT		21

执行完上面调用,将从键盘接受字符串送到内存的输入缓冲区(由DS:DX指定缓冲区),要求预先定义一个缓冲区,缓冲区的第一个字节指定容纳的最大字符个数,由用户给出;第二个字节存放实际的最大字符个数,由系统最后添入;从第三个字节开始存放从键盘接受的字符,直到ENTER键结束。

实例1 secret0.exe
将程序分段,便于分析其结构框架。
在这里插入图片描述
上图棕色框的操作是将0000作为偏移量赋值给DX,于是输出以DS:0000为首地址,"$"为结尾的字符串,即下图中右边框中的字符串,用于提示字符输入正确。
在这里插入图片描述

上图粉色框的操作是将0013作为偏移量赋值给DX,于是输出以DS:0013为首地址,"$"为结尾的字符串,即下图中右边框中的字符串,用于提示字符输入错误。
在这里插入图片描述
由上图的分析可知第一个字符应该是Z(其ASCII码的十六进制表示就是5A),第二个字符是H(其ASCII码的十六进制表示是48)。
截图如下:
在这里插入图片描述

总结:
程序看不懂的话就将其拆分成一段一段的,知道从哪跳到哪,知道每一段的作用就大致可以分析出整个程序的意图。
感觉我真的是一根筋,脑袋太笨了,不灵活。可能是很少用的原因吧。ε=(´ο`*)))唉,没有力气干巴爹了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值