汇编 宏库的问题
如下程序为将一个双字数转换为十进制数并显示的程序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