組合語言實現功能(1)用迴圈累加實現乘法

2021-08-28 04:07:12 字數 1901 閱讀 6291

assume cs:code 

code segment

mov ax,2

add ax,ax

;實現程式的返回

mov ax,4c00h

int 21h

code ends

end

assume cs:code

code segment

mov ax,2

mov cx,11 ;設定迴圈次數,只需相加11次

s:add ax,ax

loop s

mov ax,4c00h

int 21h

code ends

end

assume cs:code

code segment

mov ax,236

mov cx,122

s:add ax,ax

loop s

mov ax,4c00h

int 21h

code ends

end

assume cs:code

code segment

;設定位址指向為ffff:0006

mov ax,0ffffh ;字母開頭的常量前面需要加0

mov ds,ax

mov bx,6 ;ds:bx則為資料的指向

mov al,ds:[bx]

mov ah,0

mov dx,0 ;初始化暫存器中的內容

mov cx,3 ;因為不是自身相加,所以需要3次

s:add dx,ax

loop s

mov ax,4c00h

int 21h ;程式返回

code ends

end

assume cs:code

code segment

mov ax,0ffffh

mov ds,ax

mov bx,0 ;ds:bx指向ffff:0

mov dx,0

mov cx,12 ;12次到ffff:b

s: mov al,ds:[bx]

mov ah,0

add dx,ax ;利用ax進行相同位數的相加

inc bx ;向後移動乙個單元

loop s

mov ax,4c00h

int 21h

code ends

end

assume cs:code,ds:data

data segment

dw 1,2,3,4,5,6,7,8

dw 8 dup(0)

data ends

code segment

start: mov ax data

mov ds,ax

mov si,0 ;ds:si指向第一組word單元

mov di,16 ;ds:di指向第二組dword單元

mov cx,8

s: mov bx,ds:[si]

call cube

mov ds:[di],ax ;計算的結果低16位儲存在ax中

mov ds:[di+2],dx ;計算的結果高16位儲存在dx中

add si,2 ;ds:si指向下乙個word單元

add di,4 ;ds:di指向下乙個dword單元

loop s

mov ax,4c00h

int 21h

cude: mov ax,bx

mul bx

mul bx

retcode ends

end start

組合語言實現功能(4)顯示功能

assume cs code,ds data data segment db welcome to masm data ends code segment start mov ax,data mov ds,ax mov bx,0 ds bx指向資料段起始位置 mov ax,0b800h mov es...

組合語言實現迴圈 迴圈程式的實現

任務2 在下面的資料段中,給出了全班3名同學os al se db課程的成績,請程式設計計算出平均成績,寫在 處。要求用jcxz指令構造迴圈 datasg segment db 201658501101 zhangsan 90,100,76,89,0 db 201658501102 lisi 97,...

組合語言實現階乘

static int fact int n return fact n 1 n public static void main string args 開始遞迴函式呼叫 addiu sp,0,0x10010080 初始化棧位址 壓棧入參 addiu s0,0,5 n 5 sw s0,0 sp n 5...