| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1248 人关注过本帖
标题:汇编 宏库的问题
只看楼主 加入收藏
longxies
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2007-11-14
收藏
 问题点数:0 回复次数:0 
汇编 宏库的问题
如下程序为将一个双字数转换为十进制数并显示的程序
sy30.asm为只数ax,dx并调用宏库md.lib的程序
md.lib为宏库文件
在md.lib文件中有个问题,语句mov ds:[si],dl 它将dl存那里去了?我把它改为cs段照常运行为什么?


sy30.asm   

include c:\masm\md.lib
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 ax,0h
    mov dx,0001h
    divdw ax,dx
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START


md.lib

divdw macro x,y  
 
    mov si,0
    mov ax,x
    mov dx,y
    mov cx,10
lop:push bx
    mov bx,ax
    mov ax,dx
    mov dx,0
    div cx
    push ax
    mov ax,bx
    div cx


    mov ds:[si],dl        ;数据dl存那里去了?改为mov cs:[si],dl 照常运行


    pop dx
    pop bx
    inc si
    cmp ax,0
    jne lop
    mov ax,0b803h
    mov es,ax
    mov di,0
    mov cx,si
    dec si


s1: mov al,ds:[si]       ;改为mov al,cs:[si] 照常运行


   
    add al,30h
    mov byte ptr es:[di],al
    inc di
    inc di
    dec si
    loop s1
endm
搜索更多相关主题的帖子: 堆栈 STACKS SEGMENT lib DATAS 
2007-12-29 17:30
快速回复:汇编 宏库的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018068 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved