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...