电工学习网

 找回密码
 立即注册

汇编程序设计

2015-3-22 09:28| 编辑:电工学习网| 查看: 7481| 评论: 0

   这里仅讨论简单的程序设计。简单程序设计是没有分支,没有循环的直线运行程序,程序执行按照IP内容自动增加的顺序进行。

    【例1】 利用查表法计算平方值。已知0 ~ 9的平方值连续存在以SQTAB开始的存储区域中,求SUR单元内容X的平方值,并放在DIS单元中。假定0≤X≤ 9且为整数。

    分析:建立平方表,通过查表完成。

    STACK SEGMENT

    DB 100 DUP(?)

    STACK  ENDS

    DATA SEGMENT

    SUR   DB  ?

    DIS   DB   ?

    SQTAB  DB  0,1,4,9,16,25,36,49,64,81  ; 0~9的平方表

    DATA   ENDS

    CODE SEGMENT

    ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA

    BEGIN:PUSH   DS

    MOV AX,0

    PUSH AX                  ;保证返回DOS,

    MOV AX,DATA

    MOV DS,AX              ;为DS送初值

    LEA   BX,SQTAB           ;以下程序部分完成查表求平方值

    MOV AH,0                ;亦可用查表指令完成(如下程序段)

    MOV AL,SUR   ;AL=X      LEA  BX, SQTAB

    ADD BX,AX              ; MOV  AL, SUR

    MOV AL,[BX]             ; XLAT  

    MOV DIS,AL              ; MOV  DIS, AL

    CODE ENDS

    END   BEGIN

    【例2】已知Z=(X+Y)-(W+Z),其中X,Y,Z,W均为用压缩BCD码表示的数,写出程序。

    分析:这也是一种典型的直线程序,在这里要注意是BCD数相加,要进行十进制调整。具体程序如下:

    MOV AL,Z

    MOV BL,W

    ADD AL,BL

    DAA

    MOV BL,AL   ;  BL=(W+Z)

    MOV AL,X

    MOV DL,Y

    ADD AL,DL   ;  AL=(X+Y)

    DAA             ;十进制调整

    SUB  AL,BL   ;  AL=(X+Y)-(Z+W)

    DAS             ;十进制调整

    MOV Z,AL    ;结果送Z

看过《汇编程序设计》的人还看了以下文章:

发表评论

最新评论

电工学习网 ( )

GMT+8, 2021-12-6 20:45

Powered by © 2011-2021 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部