汇编网首页登录博客注册
sissim的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
好友圈
友情链接

[2010-02-16 17:24] 实验14

借用了实验13第三题对行数处理的思路,这里也把地址存到内存里面,利用循环依此取出数据并处理,保存为字符串,用int 10h的2号子程序和9号dos功能调用定位光标和显示字符串。

        assume  cs:code
data    segment
str     db      '**/**/** **:**:**$'
adr     db      9,8,7,4,2,0
code    segment
start:  mov     ax,data
        mov     ds,ax
        mov     si,offset str
        mov     bx,offset adr
        mov     cx,6

next:   mov     al,[bx]
        out     70h,al
        in      al,71h  ;取得相应数据

        push    cx
        mov     cl,4
        mov     ah,al   ;放ah暂存
        shr     al,cl   ;al中存放十位
        and     ah,0fh  ;ah中存放个位
        or      ax,3030h;转换成ascii码

;这样安排十位和个位,是因为下面可以用ax直接存放到si指向的单元
;ax作为整体存放时,ah中的数据会存放到高地址单元
;如果用ah存放十位,al存放个位,则数据刚好倒序存放了。

        mov     [si],ax ;保存
        add     si,3    ;修改指针
        inc     bx
        pop     cx
        loop    next


        mov     ah,2
        mov     bh,0
        mov     dh,12
        mov     dl,31
        int     10h   ;int 10h的2号子程序设置光标位置

        mov     dx,0
        mov     ah,9
        int     21h   ;9号dos功能调用,显示字符串

        mov     ax,4c00h
        int     21h


code    ends
        end     start
评论次数(0)  |  浏览次数(1179)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码