反汇编代码如何看懂

网上有关“反汇编代码如何看懂”话题很是火热,小编也是针对反汇编代码如何看懂寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

建议你先学一下微机原理这门课程,汇编语言需要对CPU的指令系统有较深的理解,AX,BX,CX,DX是一组指令寄存器,至于INC,OR,CMP这些都是运算符。如OR是或运算,CMP是比较运算,POP是出栈,PUSH压栈。。。慢慢研究吧!

微机原理,16位二进制补码数放在ax寄存器中,or ax,ax是判断数的符号,为什么呢?

8255地址信息为0378H---037BH,

A B C这三个端口均工作方式0,

A口作为输入口,输入转换后的结果;

B口输出,用来输出通道地址,发出第之所存信号和启动转换信号;

C口低4位为输入口,用来读取转换状态,高4位没有使用。

INIT_8255 PROC NEAR

MOV DX, 037BH ;控制口地址

MOV AL, 91H ;控制字:A B C口均工作方式0,A输入,B输出,C低4位输入

OUT DX, AL ;写入8255

RET

INIT_8255 ENDP

数据采集:

START:

MOV AX, SEG DATA

MOV DS, AX ;设置数据段地址

MOV SI, OFFSET DATA ;设置数据存储首地址

CALL INIT_8255 ;初始化8255

MOV BL, 0 ;AD转换通道号

MOV CX, 8 ;预计循环八次

AGAIN:

MOV AL, BL ;通道号

MOV DX, 0379H ;B口地址

OUT DX, AL ;输出通道号

OR AL, 10H ;D4置一

OUT DX, AL ;输出

AND AL, 0EFH ;D4清零

OUT DX, AL ;输出

;上面四行,发出地址锁存信号和启动转换信号

NOP ;稍等

MOV DX, 037AH ;C口地址

WAIT1:

IN AL, BL ;--有错!改正如下

IN AL, DX ;从C口输入,这是状态

AND AL, 02H ;取出D3

JZ WAIT1 ;为零就是没有转换完,转移,继续读状态

MOV DX, 0379H ;为一,就?

MOV AL, BL ;这三行,看不懂

OR AL, 20H

OUT DX, AL

MOV DX, 0378H ;A口地址

IN AL, DX ;读入转换出来的数据

MOV [SI], AL ;存放

INC SI ;存放的地址加一

INC BL ;通道号码加一

LOOP AGAIN ;循环八次

MOV DX, 0379H ;B口地址

MOV AL, 0

OUT DX, AL ;向B口输出0,大概是关闭转换器

HLT ;停机

执行 OR AX, AX 的结果, 标志寄存器PSW的符号标志位SF 受AX初值最高位影响,

若AX 初值最高位为1,执行OR AX, AX 后,SF =1 (NG 负数标志);

若AX初值最高位为0, 执行OR AX, AX 后,SF =0 (PL正数标志)。

关于“反汇编代码如何看懂”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

(14)

猜你喜欢

发表回复

本站作者才能评论

评论列表(3条)

  • 抬眉见雪的头像
    抬眉见雪 2025年10月07日

    我是折叠号的签约作者“抬眉见雪”

  • 抬眉见雪
    抬眉见雪 2025年10月07日

    本文概览:网上有关“反汇编代码如何看懂”话题很是火热,小编也是针对反汇编代码如何看懂寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。建议你先学一下...

  • 抬眉见雪
    用户100705 2025年10月07日

    文章不错《反汇编代码如何看懂》内容很有帮助

联系我们:

邮件:折叠号@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信