Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

asm -вечные вопросы!!

31K
05 апреля 2008 года
snoop_lan
11 / / 05.04.2008
Привет всем!!!
Помогите наити ошибку в коде! суть такова "дана строка Sn. с n- елементами : если введены только цифры выводить 1, в противном случее 0"
Не происходит вызов процидуры :number_str

вод код:

Код:
;------------opisem segments komand-----------------------------------------------
  code segment
  assume cs:code,ds:data
 
 main proc
    mov ax,data                        ;initalizatiea
    mov ds,ax                          ;registra ds

;-----------------------begin program---------------------------------------------

call number_str
                           ;****vivod slujebnogo soobsenie***
    mov ah,09h                         ;functiea vivoda
    mov dx,offset msg                 ;adres soobseniea
    int 21h
    push cx
                       
    mov cx,num                            
    mov bx,offset buf
Mloop:
    mov ah,1
    int 21h
     
    mov [bx],al
    inc bx
loop Mloop
    pop cx
       
 call point
 call proc0_1
   
;-------------------------end of program------------------------------------------

EXIT:

    mov ah,01                          ;ostanovka programmi
    int 21h                            ;v ojidanii najatiea klavisi
           ;zaversenie programmi
    mov ax,4c00h
    int 21h

main endp
;------------------SIMVOL-----------------------------
point proc
    push ax
    push si
    push cx
   
    mov ax,offset buf    
;***sohraneaem stroku
    mov act,ax                         ;facticeski vvedeno
;****proverim esti li v stroke krome tifirii esio kakieto simvoli
    mov cx,act                         ;dlena vvedionnoi stroki
    mov si,0                           ;ukazateli v buffer
   
    pop cx
    pop si
    pop ax
ret
point endp
;------------------SIMVOL END-------------------------------
;--------------procedura preobrazovaniea stroki v cislo--------
number_str proc
    push ax
    push bx
    push cx
    push dx
    push si
mov es,ax
    mov ah,9
    mov dx,offset msg0
    int 21h

    mov ah,0ah
    lea dx,maxl
    int 21h

    mov bx,offset str_1-1
    xor ah,ah
    mov al,arl
    mov si,ax
m:
    mov al,[bx+si]
    sub al,30h
    xor dx,dx
    mul m10
    add num,ax
    dec si
    mov ax,10
    mul m10
    mov m10,ax
    cmp si,0
    jne m
 cld
    pop si
    pop dx
    pop cx
    pop bx
    pop ax  
RETN
number_str endp
;--------------konet proteduri---------------------------------
;-----------------functiea proverki susestvuet le v strok.simvoli krome cisel----
proc0_1 proc
    push ax
    push si
    push dx
   
    mov al,buf[si]         ;vozmiom simvol
    cmp al,'9'             ;menise 9?
    jbe one                 ;da  perehod na sleduiusii simvol
    cmp al,'9'             ;bolise 9?
    ja null                ;perehod na Exit of program
null:
    mov ah,09h              ;funktiea vivoda
    mov dx,offset msg1     ;adres soobseniea
    int 21h
    jmp EXIT
one:
    inc si                    ;smestim ukazateli
    loop proc0_1                ;tikl po vsem simvolam
     
    mov ah,09h                ;functiea vivoda
    mov dx,offset msg2       ;adres soobseniea
    int 21h
   
    pop dx
    pop si
    pop ax    
ret  
proc0_1 endp
;---------------------------    
code ends                  ;konet segmenta koda

;----------------------------opisim segment dannih--------------------------------
data segment
  msg0 db "vvedite razmernosti stroki Sn,N=$"
  msg db "vvedite stroku!$"
  msg1 db 10,13,"0",'$'
  msg2 db 10,13,"1",'$'
  buf db 100 dup('')                  ;buffer vvoda
  act   dw 0
  ns db  10,13,'$'
       maxl db 6
       arl db 6
       str_1 db 6 dup('?')
    num dw 0
    m10 dw 1
 
data ends
;-----------------------------opisem segment steka--------------------------------
  stk segment stack
  dw 128 dup('')
  stk ends
end main
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог