汇编语言实验课:第四次记录

    科技2022-08-04  120

    文章目录

    前言一、运行程序二、理解程序1.初始赋值2.除法运算3.压栈和出栈4.条件转移指令5.JMP指令 总结


    前言

    本次实验课要求,AX为2559,在屏幕上输出2559。每个数字以字符的形式输出,即分别输出‘2’,‘5’,‘5’,‘9’。


    一、运行程序

    DATAS SEGMENT ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 ;对AX赋值为2559,CL为10,BX计数 MOV AX,2559 MOV CL,10 MOV BX,0 L0: ;除法运算,压栈,判断AL是否为0,为0则跳到L1 DIV CL PUSH AX ADD BX,1 MOV AH,0 CMP AL,0 JE L1 JMP L0 L1: ;输出,出栈 CMP BX,0 JE OVER POP CX MOV DL,CH ADD DL,48 MOV AH,2 INT 21H SUB BX,1 JMP L1 OVER: MOV AH,4CH INT 21H CODES ENDS END START

    二、理解程序

    1.初始赋值

    MOV AX,2559 MOV CL,10 MOV BX,0

    为AX赋值初始值为2559,CL赋值为10,BX赋值为0 其中AX表示需要输出的数据 CL表示除数,接下来需要使用AX除以CL求出对应的商和余数 BX用于记录压栈的次数

    2.除法运算

    DIV CL

    在汇编语言中,除法运算使用DIV,且固定为AX被除,AL中放置运算结束的商,AH放置运算结束的余数 AX÷CL=AL…AH

    3.压栈和出栈

    PUSH AX POP CX

    可以使用PUSH和POP对数据进行出栈和入栈操作。

    4.条件转移指令

    CMP AL,0 JE L1

    比较AL和0,如果AL=0,那么就跳转到L1 条件转移指令Jcc中的cc表示利用标志判断的条件,一共有16种

    助记符中文说明JZ/JE等于0/相等JNZ/JNE不等于0/不相等JS符号为负JNS符号为正JP/JPE“1”的个数为偶数JNP/JPO“1”的个数为奇数JO溢出JNO无溢出JC/JB/JNAE进位/低于/不高于等于JNC/JNB/JAE无进位/不低于/高于等于JBE/JNA低于等于/不高于JNBE/JA不低于等于/高于JL/JNGE小于/不大于等于JNL/JGE不小于/大于等于JLE/JNG小于等于/不大于JNLE/JG不小于等于/大于

    5.JMP指令

    JMP L0

    跳转到L0


    总结

    没什么好总结的。
    Processed: 0.011, SQL: 8