FacebookTwitter

رئوس مطالب درس اسمبلی ۸۹/۰۹/07

نویسنده: | تاریخ: ۱۰ آذر ۱۳۸۹ | موضوع: زبان اسمبلی | یک دیدگاه

Share On GoogleShare On FacebookShare On Twitter

کلاس درس این جلسه نیز بصورت عملی برگزار گردید و یک برنامه به عنوان تمرین انجام شد.

تمرین حل شده در کلاس:

برنامه ای که دو عدد 128 بایتی را با هم جمع نموده و به صورت هگز نمایش می دهد.

128BitADD.ASM
		org 0100h
		jmp begin

value1	        dw 0005h, 0000, 0000, 0000
		dw 0000, 0000, 0000, 0000
value2	        dw 0f01h, 0000, 0000, 0000
		dw 0000, 0000, 0000, 0ffffh

result	        dw 0000, 0000, 0000, 0000
		dw 0000, 0000, 0000, 0000

str_buffer times 32 db ' '
		db '$'

begin:

		mov cx, 08h
		mov si, 0000h
		lea bp, [result]

		clc

lp1:
		mov ax, word [value1 + si]
		mov bx, word [value2 + si]
		adc ax, bx
		mov word [bp+si], ax
		add si, 02h
		loop lp1

		mov si, 16
		mov di, str_buffer
lp2:
		mov ax, word [result + si - 2]
		push ax
		push di
		call bin2hex16
		add di, 04h
		sub si, 02h
		loopnz lp2

		lea dx, [str_buffer]
		mov ah, 09h
		int 021h

		ret

;*************************************
;*** AX2HEXSTR: Converts AX register to a HEX String
;*** USAGE:
;*** Push 16Bit Value
;*** Push Near PTR to the string buffer
;*************************************
bin2hex16:
		push dx
		push ax
		push bp
		push bx

		lea bx, [bin2hex_xlate]
		mov bp, sp
		mov ax, [bp+12]
		mov bp, [bp+10]

                xor dx, dx
                xchg dl, ah
                shl ax, 04h
                shr al, 04h
                xlat
                ror ax, 08h
                xlat
                xchg dx, ax
                shl ax, 04h
                shr al, 04h
                xlat
                ror ax, 08h
                xlat
                xchg dx, ax
                mov word [bp], dx
                mov word [bp+2], ax 

		pop bx
		pop bp
		pop ax
		pop dx

		ret 4
bin2hex_xlate           db "0123456789ABCDEF"

یک دیدگاه

  1. محمد جهاندیده

    ۱۱ آذر ۱۳۸۹

    Post a Reply

    با سلام و خسته نباشید
    درخواستی از شما داشتم
    اگر لطف کنید و امتحان اسمبلی را هفته آینده برگزار کنید ، از شما ممنون خواهم شد
    با سپاس فراوان

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Pin It on Pinterest

Shares