关于汇编的问题

nameless_LEARNER 2008-04-10 11:14:57
.MODEL SMALL
.CODE
ORG 100H

BEGIN: JMP SHORT A10MAIN
ASCHII DB 10H, '$'
ROW DW 1
A10MAIN PROC FAR
MOV CX, 240
A20:
MOV AH, 02H
MOV DL, ASCHII
INT 21H

INC ASCHII
MOV AH, 02H
MOV DL, 00H
INT 21H

INC ROW

CMP ROW, 16
JE A30
CMP ROW, 16
JNE A20
LOOP A20

JMP A40

A30:
MOV ROW, 1
MOV AH, 02H
MOV DL, 0DH
INT 21H

A40:
MOV AX, 4C00H
INT 21H

A10MAIN ENDP
END BEGIN

程序要实现的功能是按照15*16的格式输出从16开始的ASCAII码!可是它值输出一行就退出执行,请各位大侠帮忙,多谢了!是在未来汇编里面写的!
...全文
68 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
不知,帮顶
nameless_LEARNER 2008-04-14
  • 打赏
  • 举报
回复
谢谢你们大家啊 我重新做出来了一个了 多谢各位
winq2007 2008-04-11
  • 打赏
  • 举报
回复
我可以给你个程序参考参考....
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX

mov cx, 0
mov dx, 10h
push dx

char:
pop dx

mov ah, 02h ;输出字符
mov dl, dl
int 21h

inc dx
push dx
jmp blank


blank:
mov ah, 02h;输出空格
mov dl, 0h
int 21h
add cx, 2

test cx, 001fh ;判断是不是16的倍数
jz next

cmp dx, 100h;判断是不是该结束了
je exit

jmp char

next:
mov ah, 02h;输出换行回车
mov dl, 0dh
int 21h
mov ah, 02
mov dl, 0ah
int 21h
jmp char
exit:
MOV AH,4CH
INT 21h
CODES ENDS
END START
zara 2008-04-11
  • 打赏
  • 举报
回复
行列的判别都是通过 ROW 变量来进行的, 那肯定有问题了. 因为行内显示了 16 个字符后, 行的循环上也就到 16, 该结束了. 另外, 内外两重循环条件判别上, 也有些问题.
apricot1984 2008-04-11
  • 打赏
  • 举报
回复
楼主的程序逻辑上很混乱,最好还是再理理思路!
发帖
汇编语言

2.1w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
帖子事件
创建了帖子
2008-04-10 11:14
社区公告
暂无公告