怎樣用組合語言求 X Y Z X的值啊

2022-01-10 06:51:53 字數 3976 閱讀 4945

1樓:匿名使用者

x dd ?

y dd ?

z dd ?

假設已經定義了已經賦值了

mov eax,x

mul y

sub eax,z

xor edx,edx

div x

經過以上後 eax裡放了結果

組合語言直接寫可以這樣

不過如果是高階語言編譯後產生的,肯定不是這樣,100%不是這樣的如果x y z不是dword型別要先統一型別就比較麻煩了額

2樓:匿名使用者

dseg segment

result dw ?;存放和

dseg ends

cseg segment

assume cs:cseg,ds:dsegstart:

mov ax,dseg

mov ds,ax

mov ax,1;從1開始加

mov result,0;和的初值賦0

mov cx,100;迴圈100次

next:

add result,ax;每次向和中累加axinc ax;然後ax加1

loop next

mov ax,4c00h;結束程式

int 21h

cseg ends

end start請參考

求一個8086組合語言程式!急!!! 要求:提示輸入x,y,z的值,並顯示 5

3樓:匿名使用者

確實是的,dos下的東西,還要32位的整數,有些囉唆。下面給個無符號16位整數的。

code  segment

assume cs:code

org 100h

start:

push cs

pop ds

push cs

pop es

lea dx,msg

mov ah,9

int 21h

call inputnum

lea si,array

mov ax,[si+2]

mov bx,[si]

mov cx,[si+4]

sub ax,bx

dec ax

shl ax,1

add ax,cx

call dispnum

mov ah,4ch

int 21h

msg   db 10,13,'please input x,y,z(word type):','$'

;  鍵盤輸入數值陣列子程式(陣列名為array,元素個數存放在num中)

inputnum proc near

; 輸入的資料以一個空格分隔,以回車符結束輸入lea di,array  ;將陣列第一個元素的有效地址置入dimov word ptr[num],0

stin:

mov ax,0

push ax

again1:

mov ah,1

int 21h

mov byte ptr[char],alcmp al,13

je line0

cmp al,' '

je line0

sub al,30h

mov ah,0

mov si,ax

pop ax

mov cl,10

mov ch,0

mul cx

add ax,si

push ax

jmp again1

line0:

pop ax

mov word ptr[di],ax

inc word ptr[num]

cmp byte ptr[char],13je stinend

inc di

inc di

jmp stin

stinend:

retarray dw 100 dup(0)num   dw 0

char  db ?

inputnum endp

;  顯示十進位制整型數值子程式

dispnum proc near

;   將要顯示的資料放入ax中

mov dx,0

mov bx,10

div bx

mov byte ptr[y+6],dl  ;儲存個位mov dx,0

div bx

mov byte ptr[y+5],dl  ;儲存十位mov dx,0

div bx

mov byte ptr[y+4],dl  ;儲存百位mov dx,0

div bx

mov byte ptr[y+3],dl  ;儲存千位mov byte ptr[y+2],al  ;儲存萬位mov al,byte ptr[y+2]

add al,30h            ;萬位轉asc2mov byte ptr[y+2],al

mov al,byte ptr[y+3]

add al,30h            ;千位轉asc2mov byte ptr[y+3],al

mov al,byte ptr[y+4]

add al,30h            ;百位轉asc2mov byte ptr[y+4],al

mov al,byte ptr[y+5]

add al,30h            ;十位轉asc2mov byte ptr[y+5],al

mov al,byte ptr[y+6]

add al,30h            ;個位轉asc2mov byte ptr[y+6],al

mov di,1

disp1:

inc di

cmp di,6

je dispexit

cmp byte ptr[y+di],'0'

jne dispexit

mov byte ptr[y+di],' '

jmp disp1

dispexit:

mov ah,9

lea dx,y

int 21h

rety   db 10,13,0,0,0,0,0,'$'

dispnum endp

code    ends

end start

4樓:哥德堡快遞

16位dos下的東西估計很少人記得了,除非專業的。

組合語言程式設計:x,y,z,w均為帶16位帶符號整型變數,計算z = (x * y) / w + 4*x,程式設計序實現.求大神!!! 80

5樓:做而論道

assume   cs:cc, ds:qqqq  segment

vv   dw   4

ww   dw   +100

xx   dw   -100

yy   dw   +800

zz   dw   ?

qq  ends

;----------------------------------

cc  segment

bg:mov   ax, qq

mov   ds, ax

;-----------------------------mov   ax, xx

imul  yy

idiv  ww

mov   zz, ax

mov   ax, xx

imul  vv

add   zz, ax

;-----------------------------exit:

mov   ah, 4ch

int   21h         ;返回dos;----------------------------------

cc  ends

end   bg

用 debug 除錯,過程以及結果都正確。

zz 中的內容是 fb50h,也就是-1200。

組合語言中指標的作用,組合語言裡面怎麼實現指標的功能?

c語言中的指標和組合語言中的暫存器間接定址差不多。c語言中變數的指標就是該變數的地址。如指標變數p的地址為2000h,則 p所訪問的是地址2000h的儲存單元,x p,實現把地址2000h的儲存單元的內容送給變數x。組合語言有指標這個概念,所有記憶體都可以直接用地址訪問,地址就理解為指標 組合語言中...

高分求賜教用組合語言實現矩陣基本運算,滿足要求可再追加

1 操作介面 提供一個較好的矩陣輸入操作介面,可以在字元顯示模式下設計,操作設計可以先提供一份設計方案 2 要求的運算 a 同型矩陣的加減操作 b 支援m n與n p的矩陣相乘,其中m n p小於8,要求計算支援小數處理過程和帶一位小數的結果顯示 c 矩陣的左除和右除 d 矩陣的轉置 e 可以求矩陣...

用組合語言程式設計,計算1到20之間的奇數和

pascal行嗎?var i,s integer begin s 0 for i 1 to 20 do if i mod 2 0 thens s i writeln s end.啊,看錯了,以為是程式語言,sorry data segment sum1 dw 0 sum2 dw 0 data end...