求汇编代码

来源:百度知道 编辑:UC知道 时间:2024/09/20 10:45:46
要求:检查9*9 乘法表内数据是否正确,将不正确位置确定下来并显示在屏幕上;
如数据部分:
data segment
table db 7,2,3,4,5,6,7,8,9 ;9*9 表数据
db 2,4,7,8,10,12,14,16,18
db 3,6,9,12,15,18,21,24,27
db 4,8,12,16,7,24,28,32,36
db 5,10,15,20,25,30,35,40,45
db 6,12,18,24,30,7,42,48,54
db 7,14,21,28,35,42,49,56,63
db 8,16,24,32,40,48,56,7,72
db 9,18,27,36,45,54,63,72,81
……
data ends

检查结果:
x y
1 1 error
2 3 error
4 5 error
6 6 error
8 8 error

急!请各位帮忙
请问按照此代码,LINK时为什么会出现no stack segment

有点乱,你看看吧
data segment
table db 7,2,3,4,5,6,7,8,9 ;9*9 表数据
db 2,4,7,8,10,12,14,16,18
db 3,6,9,12,15,18,21,24,27
db 4,8,12,16,7,24,28,32,36
db 5,10,15,20,25,30,35,40,45
db 6,12,18,24,30,7,42,48,54
db 7,14,21,28,35,42,49,56,63
db 8,16,24,32,40,48,56,7,72
db 9,18,27,36,45,54,63,72,81
errmsg db ?,20h,?,'error',0ah,0dh,'$'
data ends

code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
;init pointer
mov si,offset table
add si,80

mov cx,9
loop1:
push cx
mov cx,9
loop2:
pop ax ;get out cx
push ax
mul cx
mov bl,[si]
cmp al,bl
jnz display
next:
dec si
loop loop2
pop cx
loop loop1
jmp exit

display:
mov dx,cx
mov ax,cx
add ax,30h
mov byte ptr errmsg+2,al
pop cx
push ax
push cx
mov ax,cx