• 汇编语言(王爽)-实验十四(20130909)


    assume cs:code,ds:data,es:info_num
    data segment
        db '11/11/11 11:11:11$'        ;预设字符串
    data ends
    info_num segment
        db 9,8,7,4,2,0        ;端口时间地址列表
    info_num ends
    code segment
    start:
        mov ax,data
        mov ds,ax
        mov si,0        ;初始指向字符串首
        mov ax,info_num
        mov es,ax
        mov bp,0        ;指向端口时间地址列表首
        mov cx,6
    s:
        push cx
        mov al,es:[bp]
        out 70h,al
        in al,71h
        mov ah,al        ;暂存al
        mov cl,4
        shr ah,cl        ;获取BCD码高四位
        and al,00001111B    ;获取BCD码低四位
        add al,30h
        add ah,30h
        mov ds:[si],ah
        mov ds:[si+1],al    ;将时间信息写入字符串指定位置
        add si,3        ;指向字符串下一写入位置
        inc bp            ;指向端口时间地址列表下一位置
        pop cx
        loop s
    
        mov ah,2
        mov bh,0
        mov dh,12
        mov dl,50
        int 10h            ;调用系统BIOS中断例程设置光标位置
    
        mov ah,9
        mov dx,0        ;指向字符串首
        int 21h            ;调用DOS中断例程显示字符串
    
        mov ah,2
        mov bh,0
        mov dh,24
        mov dl,0
        int 10h            ;开始没有这一段,其他并没有问题,就是发现调用21h例程后光标位置直接在字符串的下一行
                    ;通过这一段重置光标位置
    
        mov ax,4c00h
        int 21h
    code ends
    end start
  • 相关阅读:
    UVA 10828
    素数推断算法(高效率)
    POJ1611 The Suspects (并查集)
    Android AES加密算法及事实上现
    C语言中的内存对齐
    OpenCV——老照片效果
    uuid 学习
    OpenCV——PS 滤镜, 浮雕效果
    加密算法之BLOWFISH算法
    OpenCV——照亮边缘
  • 原文地址:https://www.cnblogs.com/tsembrace/p/3309327.html
Copyright © 2020-2023  润新知