zoukankan      html  css  js  c++  java
  • 汇编 十个数求其最大值(第一步)

    序言:纸上得来终觉浅,觉知此事要恭行!

    为了应付考试学汇编,纸上做题时眼高手低,一看就思路来了,感觉没意思,心想要机器上来实战,一实战,出现问题了,而且,到处都是问题

    针对这个题目,我准备分成好几篇文章给大家详细讲解,或许你会觉得这么简单的一道题,直接......,你实战以下就知道了!

    要求十个数的最大值,首先,我们要有能力把这十个数挨个从内存中给取出来,并且查看是否成功

    我们先实验从内存中拿三个数

    DATA SEGMENT
            DATABASE DB 99H,56H,78H                            ;内存中的三个数
    DATA ENDS

    CODE SEGMENT
            ASSUME CS:CODE,DS:DATA
    START:
            MOV AX,DATA
            MOV DS,AX

            MOV CX,3                                                             ;设置循环次数
            MOV BX,OFFSET DATABASE                         ;获得变量的首地址

    INIT_DATA:
            MOV DL,BYTE PTR DS:[BX]                             ;挨个得到三个数据,并且一次放入dl寄存器用debug验证是否成功
            INC BX
            LOOP INIT_DATA                                                ;循环这么写是为了解决标号子程序结束后

            MOV AH,4CH                                                        ;返回不了原程序(中断和CALL RET除外)
            INT 21H
    CODE ENDS
            END START

    特别提醒:

    1.尽量使用ds:[bx]  寄存器间接寻址   方式,本人在自己机器上用寄存器直接寻址方式一直出错

    2.数据段定义变量时,变量名代表数据首地址,但是在代码段中变量名代表其首地址指向的那个数据,若需要求出首地址,需用offset伪指令或lea硬指令

    执行结果:

  • 相关阅读:
    python 用到的函数记录
    scala函数定义的四种方式
    java mail使用中遇到的550类型错误
    @Secured(), @PreAuthorize()
    jQuery each
    基于jQuery动态创建html元素
    jQuery validate在没有校验通过的情况下拒绝提交
    区别: @Secured(), @PreAuthorize() 及 @RolesAllowed()
    http meta
    注解:@Autowired
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700587.html
Copyright © 2011-2022 走看看