При выводе результата не делать пробела между группами из двух цифр - Assembler

Узнай цену своей работы

Формулировка задачи:

Дана программа:
title LaborRabota1
 
sts     SEGMENT PARA STACK 'Stack'
        DW      32 DUP (?)
sts     ENDS
 
data    SEGMENT
mes1    db 'Enter',0Ah,0Dh,'$'
mes2    db '1st',0Ah,0Dh,'$'
mes3    db 10,13,'2nd',0Ah,0Dh,'$'
mes4    db 10,13,'Rezult ',0Ah,0Dh,'$'
famm    db 21,?
fam     dw 10 dup (?)
tabss   db 21,?
tabs    dw 10 dup (?)
dim     dw 10 dup (?)
data    ends
 
text  SEGMENT
      assume    CS:text, DS:data, SS:sts
main  proc      far
;-----Block 1-----------
      push      DS
      xor       AX,AX
      push      ax
;-----Block 2-----------
      mov       ax,data
      mov       DS,AX
;-----Block 3-----------
      lea       DX,mes1
      mov       AH,09h
      int       21h
;-----Block 4-----------
      lea       DX,mes2
      mov       AH,09h
      int       21h
;-----Block 5-----------
      lea       DX,tabss
      mov       AH,0Ah
      int       21h
;-----Block 6-----------
      lea       DX,mes3
      mov       AH,09h
      int       21h
;-----Block 7-----------
      lea       DX,famm
      mov       AH,0Ah
      int       21h
;-----Block 8-----------
      mov       SI,0
      lea       DI,dim
      mov       CX,10
;-----Block 9-----------
M1:
      mov       AX,tabs[SI]
      mov       bx,fam[SI]
      cmp       AX,BX
      je        Equal
      mov       AX,3030h
Equal:
      mov       [DI],AX
      add       SI,2
      add       DI,2
      loop      M1
;-----Block 10----------
      mov       CH,0
      mov       CL,0
      mov       DH,25
      mov       DL,80
      mov       BH,07
      mov       AH,06
      mov       AL,0
      int       10h
;-----Block 11----------
      mov       AH,02
      mov       BH,0
      mov       DX,0
      int       10h
;-----Block 12----------
      lea       DX,mes4
      mov       AH,09
      int       21h
;-----Block 13----------
      mov       CX,5
      mov       SI,0
M2:
      push      CX
      mov       AX,dim[SI]
      mov       BL,04h
      call      print
      mov       AX,dim[SI+2]
      mov       BL,10h
      call      print
      pop       CX
      add       SI,4
      loop      M2
;-----------------------
      ret
main  endp
;=======================
print proc
;-----Block 14----------
      push      AX
;-----Block 15----------
      mov       AH,09
      mov       BH,0
      mov       CX,1
      int       10h
;-----Block 16----------
      mov       AH,03
      mov       BH,0
      int       10h
;-----Block 17----------
      add       DL,1
      mov       AH,02
      mov       BH,0
      int       10h
;-----Block 18----------
      pop       AX
      xchg      AH,AL
;-----Block 19----------
      mov       AH,09
      mov       CX,1
      int       10h
;-----Block 20----------
      mov       AH,03
      mov       BH,0
      int       10h
;-----Block 21----------
      add       DL,2
      mov       AH,02
      mov       BH,0
      int       10h
;-----------------------
      ret
print endp
text  ends
      end main
Задание: При выводе результата не делать пробела между группами из двух цифр.

Решение задачи: «При выводе результата не делать пробела между группами из двух цифр»

textual
Листинг программы
 ;-----Block 13----------
 mov CX,5
 mov SI,0
 M2:
 push CX
 mov AX,dim[SI]
 mov BL,04h
 call print
 mov AX,dim[SI+2]
 mov BL,10h
 call print
 pop CX
 ;add SI,4 ;<---------исправил
 loop M2
 ;-----------------------
 ret
 main endp
 ;=======================
 print proc
 ;-----Block 14----------
 push AX
 ;-----Block 15----------
 mov AH,09
 mov BH,0
 mov CX,1
 int 10h
 ;-----Block 16----------
 mov AH,03
 mov BH,0
 int 10h
 ;-----Block 17----------
 add DL,1
 mov AH,02
 mov BH,0
 int 10h
 ;-----Block 18----------
 pop AX
 xchg AH,AL
 ;-----Block 19----------
 mov AH,09
 mov CX,1
 int 10h
 ;-----Block 20----------
 mov AH,03
 mov BH,0
 int 10h
 ;-----Block 21----------
 add DL,1;2 ;<---------исправил
 mov AH,02
 mov BH,0
 int 10h
 ;-----------------------
 ret
 print endp

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5
Похожие ответы