当前位置: 代码迷 >> 汇编语言 >> 汇编学的很差,希望帮忙解决下这个有关问题,小弟我自己也有编一个,但结果错了
  详细解决方案

汇编学的很差,希望帮忙解决下这个有关问题,小弟我自己也有编一个,但结果错了

热度:264   发布时间:2016-05-02 04:53:43.0
汇编学的很差,希望帮忙解决下这个问题,我自己也有编一个,但结果错了。
本帖最后由 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                ;
  相关解决方案