谁给我一段简单的汇编程序,我要用来编译,看看到底是我的程序有问题还是安装出错!

来源:百度知道 编辑:UC知道 时间:2024/05/27 19:45:22
atas SEGMENT
tab DB 6,10,16,20,0,-1,-4,-8,-16
datas ENDS
codes SEGMENT
ASSUME CS:codes,DS:datas
start: MOV AX,datas
MOV DS,AX
MOV CX,8
LEA BX,tab
MOV AL,[BX]
lp0: INC AX
CMP [BX],AX
JB lp1
MOV AL,[BX]
lp1: LOOP lp0
MOV DL,41h
MOV AH,2
MOV AX,4c00h
INT 21h
codes ENDS
END start
能帮我分析一下上面这段程序对错也行,我编译了,但是好像前面的定义的tab没成功,因为,我用debug调试,ax,bx,dx都为0,-u显示前面那行LEA BX,tab的操作是lea bx,[0000],意思是说tab里面没有任何数?
谁给我一段能编译的asm代码,赶快啊,这个不是很难,随便什么都行。
倒数第4,5行是MOV DL,41h
MOV AH,2
是多输入的,那两行删掉

SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX,0004H
MOV DI,3500H ;十六进制数源地址
MOV DX,[DI]
A1: MOV AX,DX
AND AX,000FH ;取低4位
CMP AL,0AH
JB A2 ;小于0AH则转A2
ADD AL,07H ;在A~FH之间,需多加上7H
A2: ADD AL,30H ;转换为相应ASCII码
MOV [DI+0DH],AL ;结果存入目标地址
DEC DI
PUSH CX
MOV CL,04H
SHR DX,CL ;将十六进制数右移4位
POP CX
LOOP A1
A3: JMP A3
CODE ENDS
END START

你大概理解错了, lea bx,[0000] 这个 [0000]是tab的相对地址,你要看它的内容,得要 dds:0000 才能看到。