User Tools

Site Tools


isu:cv02

[ISU] 2. Překlad, sestavení a spuštění programu, ladění


hello.asm
%include "rw32.inc"
 
section .data
    sMessage db "Hello World!",EOL,0
 
section .text
main:
    push ebp
    mov ebp,esp
 
    mov esi,sMessage
    call WriteString
 
    pop ebp	
    ret
cv2_0.asm
; Ze vstupu načti dvě 32b čísla (X a Y) a vypiš jejich součet (X+Y).
 
%include "rw32.inc"
 
section .text
main:
    call ReadInt32
    mov ebx, eax
    call ReadInt32
    add eax, ebx
    call WriteInt32
 
    ret 
cv2_1.asm
; Ze vstupu načti dvě 32b čísla (X a Y) a vypište hodnoty X-Y, -X+Y a -X-Y, 
; každou na vlastní řádek.
 
%include "rw32.inc"
 
section .text
main:
    ; ZDE TVUJ KOD
 
    call WriteNewLine
    ret

cv2_1.asm jedno z mnoha řešení

cv2_1.asm jedno z mnoha řešení

cv2_1.asm
%include "rw32.inc"
 
section .text
main:
    ; Load variables from user
    call ReadInt32_Silent
    mov ebx, eax  ; X
    call ReadInt32_Silent
    mov edx, eax  ; Y
 
    ; X-Y
    mov eax, ebx
    sub eax, edx
    call WriteInt32
    call WriteNewLine
 
    ; -X+Y => Y-X
    mov eax, edx
    sub eax, ebx
    call WriteInt32
    call WriteNewLine
 
    ; -X-Y
    mov eax, ebx
    neg eax
    sub eax, edx
    call WriteInt32
    call WriteNewLine
    ret

cv2_2.asm
; Prohoď obsah registrů AL a AH (swap)
 
%include "rw32.inc"
 
section .text
main:
    mov eax,0x11AA
 
    ; ZDE TVUJ KOD
 
    call WriteHex16
    call WriteNewLine
    ret

cv2_2.asm jedno z mnoha řešení

cv2_2.asm jedno z mnoha řešení

cv2_2.asm
%include "rw32.inc"
 
section .text
main:
    mov eax,0x11AA
    mov bh, ah
    mov ah, al
    mov al, bh
 
    call WriteHex16
    call WriteNewLine
    ret

cv2_3.asm
; Ze vstupu načti čtyři 8b čísla (V, X, Y, Z) a vypiš hodnoty:
; 100-X, 2Y+4Z a V+X+Y+Z (každý výsledek na vlastní řádek).
 
%include "rw32.inc"
 
section .text
main:
    ; ZDE TVUJ KOD
 
    ret

cv2_3.asm jedno z mnoha řešení

cv2_3.asm jedno z mnoha řešení

cv2_3.asm
%include "rw32.inc"
 
section .text
main:
    call ReadInt8_Silent
    mov bl, al  ; V
    call ReadInt8_Silent
    mov bh, al  ; X
    call ReadInt8_Silent
    mov dl, al  ; Y
    call ReadInt8_Silent
    mov dh, al  ; Z
 
    ; 100-X
    mov al, 100
    sub al, bh
    call WriteInt8
    call WriteNewLine
 
    ; 2Y+4Z
    mov al, dl
    add al, dl
    add al, dh
    add al, dh
    add al, dh
    add al, dh
    call WriteInt8
    call WriteNewLine
 
    ; V+X+Y+Z
    mov al, bl
    add al, bh
    add al, dl
    add al, dh
    call WriteInt8
    call WriteNewLine
    ret

isu/cv02.txt · Last modified: 2024/02/22 19:32 by sakin