广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    汇编语言程序设计:[3]产生随机数并运算

    来源:网络收集  点击:  时间:2024-08-02
    【导读】:
    汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性并且降低了编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转换成机器指令。汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。因此,有时候人们也把汇编语言称为组合语言。工具/原料moreAssembly Language nbsp; Masm汇编编译器方法/步骤1/4分步阅读

    打开masm汇编编译程序,新建一个masm源文件脚本。

    DATAS SEGMENT

    ;此处输入数据段代码

    DATAS ENDS

    STACKS SEGMENT

    ;此处输入堆栈段代码

    STACKS ENDS

    CODES SEGMENT

    ASSUME CS:CODES,DS:DATAS,SS:STACKS

    START:

    MOV AX,DATAS

    MOV DS,AX

    ;此处输入代码段代码

    MOV AH,4CH

    INT 21H

    CODES ENDS

    END START

    2/4

    产生随机数的方法是利用系统时钟

    RAND PROC

    PUSH CX

    PUSH DX

    PUSH AX

    STI

    MOV AH,0 ;读时钟计数器值

    INT 1AH

    MOV AX,DX ;清高6位

    AND AH,3

    MOV DL,101 ;除101,产生0~100余数

    DIV DL

    MOV BL,AH ;余数存BX,作随机数

    POP AX

    POP DX

    POP CX

    RET

    RAND ENDP

    3/4

    在正文中输入我们的程序代码,并将文件命名为random.asm

    DATA SEGMENT

    CC DB +

    ww db -

    GG DB =

    II DB 0DH,0AH,$

    AA DB 5 DUP(?)

    www dw 0

    ghh db 0,0dh,0ah,$

    bnm dw 0

    DATA ENDS

    STACK SEGMENT

    DB 200 DUP(0)

    STACK ENDS

    CODE SEGMENT

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

    START: MOV AX,DATA

    MOV DS,AX

    MOV CX,20

    CALL RAND ;产生一随机数

    CALL MCAT ;将随机数转换为16进制表示的ASCII码字符

    MOV AX,BX

    PUSH AX

    CMP www,0 ;WWW=0?

    JE A1 ;执行+

    CMP www,1 ;www=1?

    JE A2 ;执行-

    A1: MOV DL,CC ;显示+

    MOV AH,2

    INT 21H

    CALL RAND ;产生另一随机数

    add bx,0fh

    CALL MCAT ;将随机数转换为16进制表示的ASCII码字符

    MOV DL,GG ;显示=

    MOV AH,2

    INT 21H

    POP AX

    ADD AX,BX

    cmp ax,0

    jne yjw1

    lea dx,ghh

    mov ah,9

    int 21h

    jmp qq1

    yjw1: JMP B1

    A2: MOV DL,WW ;显示-

    MOV AH,2

    INT 21H

    mov cx,65535

    mai1: loop mai1

    CALL RAND1

    CALL MCAT

    MOV DL,GG

    MOV AH,2

    INT 21H

    POP AX

    Sbb AX,BX

    cmp ax,0

    jne yjw2

    lea dx,ghh

    mov ah,9

    int 21h

    jmp qq1

    yjw2: JMP B1

    B1: MOV BX,AX

    CALL MCAT

    lea DX,II

    MOV AH,9

    INT 21H

    QQ1: MOV AH,4CH

    INT 21H

    MCAT PROC ;将随机数转换为16进制表示的ASCII码字符子程序

    PUSH AX

    push bx

    PUSH CX

    PUSH DX

    CMP BX,9

    JA S1

    PUSH AX

    PUSH BX

    PUSH CX

    PUSH DX

    mov ax,bx

    mov bl,5

    div bl

    cmp ah,3

    jae vb1

    mov www,1

    jmp vn1

    vb1:mov www,0

    vn1:pop dx

    pop cx

    pop bx

    pop ax

    ADD BL,30H

    MOV AA,BL

    MOV AA+1,$

    LEA DX,AA

    MOV AH,9

    INT 21H

    JMP s3

    s1:MOV CL,4

    MOV AL,0

    PUSH BX

    SHL BX,CL

    CMP BH,9

    JBE V1

    SUB BH,9

    ADD BH,40H

    JMP MM1

    V1:ADD BH,30H

    MM1:MOV AA,BH

    POP BX

    AND BL,0FH

    PUSH AX

    PUSH BX

    PUSH CX

    PUSH DX

    mov ax,bx

    mov bl,5

    div bl

    cmp ah,3

    jae vb2

    mov www,1

    jmp vn2

    vb2:mov www,0

    vn2:pop dx

    pop cx

    pop bx

    pop ax

    CMP BL,9

    JBE TT1

    SUB BL,9

    ADD BL,40H

    JMP RR1

    TT1: ADD BL,30H

    RR1: MOV AA+1,BL

    MOV AA+2,$

    LEA DX,AA

    MOV AH,9

    INT 21H

    s3:POP DX

    POP CX

    POP BX

    POP AX

    RET

    MCAT ENDP

    RAND PROC

    PUSH CX

    PUSH DX

    PUSH AX

    STI

    MOV AH,0 ;读时钟计数器值

    INT 1AH

    MOV AX,DX ;清高6位

    AND AH,3

    MOV DL,101 ;除101,产生0~100余数

    DIV DL

    MOV BL,AH ;余数存BX,作随机数

    POP AX

    POP DX

    POP CX

    RET

    RAND ENDP

    RAND1 PROC

    PUSH CX

    PUSH DX

    PUSH AX

    STI

    MOV AH,0

    INT 1AH

    MOV ax,cx

    AND AH,3

    MOV DL,101

    DIV DL

    MOV BL,AH

    POP AX

    POP DX

    POP CX

    RET

    RAND1 ENDP

    CODE ENDS

    END START

    4/4

    运行我们编辑的文件 就会出现产生的随机说进行了运算

    随机数运算
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_1050840.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 08:58:36  耗时:0.024
    0.0245s