section .data
prompt_b db 'Enter the value of b: ', 0
prompt_c db 'Enter the value of c: ', 0
prompt_d db 'Enter the value of d: ', 0
result_msg db 'Result: ', 0
section .bss
b resd 1
c resd 1
d resd 1
result resd 1
section .text
global _start
_start:
; Prompt user for input b
mov eax, 4
mov ebx, 1
mov ecx, prompt_b
mov edx, 21
int 0x80
; Read input b
mov eax, 3
mov ebx, 0
mov ecx, b
mov edx, 4
int 0x80
; Prompt user for input c
mov eax, 4
mov ebx, 1
mov ecx, prompt_c
mov edx, 21
int 0x80
; Read input c
mov eax, 3
mov ebx, 0
mov ecx, c
mov edx, 4
int 0x80
; Prompt user for input d
mov eax, 4
mov ebx, 1
mov ecx, prompt_d
mov edx, 21
int 0x80
; Read input d
mov eax, 3
mov ebx, 0
mov ecx, d
mov edx, 4
int 0x80
; Convert input to integers
mov eax, [b]
sub eax, '0'
mov [b], eax
mov eax, [c]
sub eax, '0'
mov [c], eax
mov eax, [d]
sub eax, '0'
mov [d], eax
; Calculate expression: 3b - 12c/d
mov eax, [b] ; eax = b
imul eax, 3 ; eax = 3b
mov ebx, [c] ; ebx = c
imul ebx, 12 ; ebx = 12c
mov ecx, [d] ; ecx = d
idiv ecx ; eax = 12c/d
sub eax, ebx ; eax = 3b - 12c/d
mov [result], eax
; Display result
mov eax, 4
mov ebx, 1
mov ecx, result_msg
mov edx, 8
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, [result]
mov edx, 4
int 0x80
; Exit
mov eax, 1
xor ebx, ebx
int 0x80
c2VjdGlvbiAuZGF0YQogICAgcHJvbXB0X2IgZGIgJ0VudGVyIHRoZSB2YWx1ZSBvZiBiOiAnLCAwCiAgICBwcm9tcHRfYyBkYiAnRW50ZXIgdGhlIHZhbHVlIG9mIGM6ICcsIDAKICAgIHByb21wdF9kIGRiICdFbnRlciB0aGUgdmFsdWUgb2YgZDogJywgMAogICAgcmVzdWx0X21zZyBkYiAnUmVzdWx0OiAnLCAwCgpzZWN0aW9uIC5ic3MKICAgIGIgcmVzZCAxCiAgICBjIHJlc2QgMQogICAgZCByZXNkIDEKICAgIHJlc3VsdCByZXNkIDEKCnNlY3Rpb24gLnRleHQKICAgIGdsb2JhbCBfc3RhcnQKCl9zdGFydDoKICAgIDsgUHJvbXB0IHVzZXIgZm9yIGlucHV0IGIKICAgIG1vdiBlYXgsIDQKICAgIG1vdiBlYngsIDEKICAgIG1vdiBlY3gsIHByb21wdF9iCiAgICBtb3YgZWR4LCAyMQogICAgaW50IDB4ODAKCiAgICA7IFJlYWQgaW5wdXQgYgogICAgbW92IGVheCwgMwogICAgbW92IGVieCwgMAogICAgbW92IGVjeCwgYgogICAgbW92IGVkeCwgNAogICAgaW50IDB4ODAKCiAgICA7IFByb21wdCB1c2VyIGZvciBpbnB1dCBjCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBwcm9tcHRfYwogICAgbW92IGVkeCwgMjEKICAgIGludCAweDgwCgogICAgOyBSZWFkIGlucHV0IGMKICAgIG1vdiBlYXgsIDMKICAgIG1vdiBlYngsIDAKICAgIG1vdiBlY3gsIGMKICAgIG1vdiBlZHgsIDQKICAgIGludCAweDgwCgogICAgOyBQcm9tcHQgdXNlciBmb3IgaW5wdXQgZAogICAgbW92IGVheCwgNAogICAgbW92IGVieCwgMQogICAgbW92IGVjeCwgcHJvbXB0X2QKICAgIG1vdiBlZHgsIDIxCiAgICBpbnQgMHg4MAoKICAgIDsgUmVhZCBpbnB1dCBkCiAgICBtb3YgZWF4LCAzCiAgICBtb3YgZWJ4LCAwCiAgICBtb3YgZWN4LCBkCiAgICBtb3YgZWR4LCA0CiAgICBpbnQgMHg4MAoKICAgIDsgQ29udmVydCBpbnB1dCB0byBpbnRlZ2VycwogICAgbW92IGVheCwgW2JdCiAgICBzdWIgZWF4LCAnMCcKICAgIG1vdiBbYl0sIGVheAoKICAgIG1vdiBlYXgsIFtjXQogICAgc3ViIGVheCwgJzAnCiAgICBtb3YgW2NdLCBlYXgKCiAgICBtb3YgZWF4LCBbZF0KICAgIHN1YiBlYXgsICcwJwogICAgbW92IFtkXSwgZWF4CgogICAgOyBDYWxjdWxhdGUgZXhwcmVzc2lvbjogM2IgLSAxMmMvZAogICAgbW92IGVheCwgW2JdICAgICAgICA7IGVheCA9IGIKICAgIGltdWwgZWF4LCAzICAgICAgICAgOyBlYXggPSAzYgoKICAgIG1vdiBlYngsIFtjXSAgICAgICAgOyBlYnggPSBjCiAgICBpbXVsIGVieCwgMTIgICAgICAgIDsgZWJ4ID0gMTJjCgogICAgbW92IGVjeCwgW2RdICAgICAgICA7IGVjeCA9IGQKICAgIGlkaXYgZWN4ICAgICAgICAgICAgOyBlYXggPSAxMmMvZAoKICAgIHN1YiBlYXgsIGVieCAgICAgICAgOyBlYXggPSAzYiAtIDEyYy9kCgogICAgbW92IFtyZXN1bHRdLCBlYXgKCiAgICA7IERpc3BsYXkgcmVzdWx0CiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCByZXN1bHRfbXNnCiAgICBtb3YgZWR4LCA4CiAgICBpbnQgMHg4MAoKICAgIG1vdiBlYXgsIDQKICAgIG1vdiBlYngsIDEKICAgIG1vdiBlY3gsIFtyZXN1bHRdCiAgICBtb3YgZWR4LCA0CiAgICBpbnQgMHg4MAoKICAgIDsgRXhpdAogICAgbW92IGVheCwgMQogICAgeG9yIGVieCwgZWJ4CiAgICBpbnQgMHg4MAo=