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

2021-10-05 09:12:09 字數 1229 閱讀 4102

任務2-

在下面的資料段中,給出了全班3名同學os、al、se、db課程的成績,請程式設計計算出平均成績,寫在 ? 處。要求用jcxz指令構造迴圈

datasg segment

db 『201658501101』,『zhangsan』,90,100,76,89,0

db 『201658501102』,'lisi ',97,82,79,88,0

db 『201658501103』,'wangwu ',77,98,89,91,0

db 4 ;這是課程門數,將要用於作除數,偏移量為75

datasg ends

**:assume cs:codesg,ds:datasg, ss:stacksg

datasg segment

dw 54, 74, 71, 52, 0

dw 68, 54, 93, 95, 0

dw 81, 52, 97, 67, 0

dw 98, 77, 69, 99, 0

dw 79, 71, 69, 73, 0

datasg ends

stacksg segment

dw 0,0,0,0,0,0,0,0

stacksg ends

codesg segment

start: mov ax, stacksg

mov ss, ax

mov sp, 16

mov ax, datasg

mov ds, ax

mov bx, 0 ;基址

mov cx, 5 ;外層迴圈次數

s0: jcxz endeg

push cx ;儲存外層迴圈數

mov si, 0 ;[bx+si]將是要處理的數值

mov cx, 4 ;設定內層迴圈次數

mov ax, 0 ;用於儲存累加和\

s: jcxz s1

add ax, [bx+si] ;取成績

add si, 2

sub cx, 1

jmp short s

s1: mov [bx+si], ax ;儲存和

add bx, 10 ;下一位同學成績的基址

pop cx ;恢復外層迴圈

sub cx,1

jmp short s0

endeg: mov ax,4c00h

int 21h

codesg ends

end start

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

assume cs code code segment mov ax,2 add ax,ax 實現程式的返回 mov ax,4c00h int 21h code ends endassume cs code code segment mov ax,2 mov cx,11 設定迴圈次數,只需相加11次...

組合語言實現階乘

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

視窗程式 WinAPI之組合語言實現

以下 由radasm中編譯成功,在彙編中仍然是通過呼叫系統api去構造乙個form 386 model flat,stdcall option casemap none include 檔案定義 include windows.inc include user32.inc includelib us...