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