汇编学的很差,希望帮忙解决下这个问题,我自己也有编一个,但结果错了。
本帖最后由 wu199288 于 2013-06-05 16:51:11 编辑 2.已知定义了一个DATA数据段DATA SEGMENTV1 DB 3 , 6 , 4 , 8 , 9 , 5 , 12 , 7 , 2, 1 N EQU $ -V1 V2 DB ?DATA ENDS要求编写一个完整的代码段,在v1中查找数值9,并将它在数组中第一次出现的的序号(如1.2.3…)保存到v2中,如果没有的9,则v2=0。
下面是我自己写的,但结果错了,怎么改呀
data segment
v1 db 3,6,4,8,9,5,12,7,2,1
N equ $-v1
v2 db ?
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov si,N
loop1:cmp v1[si],09h
jne skip
mov v2,n
mov ah,2
int 21h
skip:inc si
loop loop1
mov v2,0
mov ah,4ch
int 21h
code ends
end start 汇编
[解决办法]
inc si ???????????
[解决办法]
怎么跳出loop1???
[解决办法]
改了下调试成功。
data segment
v1 db 3,6,4,8,9,5,12,7,2,1
N equ $-v1
v2 db ?
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov cx,n ;
mov si,0 ;
loop1:cmp v1[si],09h
jne skip
inc si ;
add si,30h ;
cmp si,39h ;
jbe s ;
add si,7 ;
s: ;
mov dx,si ;
mov v2,dl ;
mov ah,2
int 21h
jmp s1
skip:inc si
loop loop1
s1: ;
mov v2,0
mov ah,0 ;
int 16h ;
mov ah,4ch
int 21h
code ends
end start