1程式要求:編寫乙個匯程式設計序,判斷變數num中的無符號數是否為素數,如果是素數則向螢幕輸出字元p,如果是合數,向螢幕輸出c。;計算1+2+3+...+100的和
2 data segment ;
資料段開始
3sum dw ?
4data ends
56 code segment ;
**段開始
7 assume cs:code,ds:
data
8start:
movax,data
9mov
ds,ax
10xor
ax,ax
11mov cx,100
12next:
add
ax,cx
13loop next
14mov
sum,ax
15mov ah,4ch ;
4c號功能呼叫:終止當前程式並返**用程式
16int
21h
17 code ends ;
**段結束
18 end ;
匯程式設計序結束
其中num在資料段中給定。
程式流程:
**實現:
1;編寫乙個匯程式設計序,判斷變數num中的無符號數是否為素數,2;
如果是素數則向螢幕輸出字元p,如果是合數,向螢幕輸出c。3;
其中num在data資料段中給定了
4 data segment ;
資料段5 num dw 13
6data ends
7 code segment ;
**段8 assume cs:code,ds:
data
9start:
movax,data
10mov ds,ax ;
將資料段data的段基址送ds
11mov si,1
;si 16位源變址指標暫存器
1213
back:
incsi
14xor
ax,ax
15xor
dx,dx
16mov
ax,num
17cmp ax,si ;
比較被除數(num)和除數(si)是否相等
18jz print_p ;
jz 等於則跳轉
19div si ;
用dx和ax組成的32位數除以16位的si
20cmp dx,0
;餘數在dx裡邊,判斷餘數是否為0
21jnz back ;
jnz 不等於則跳轉
2223
print_c:
xordx,dx
24mov dl,'c'
25mov ah,2
26int
21h27
jmp exit ;
jmp 無條件跳轉指令
2829
print_p:
xordx,dx
30mov dl,'p'
31mov ah,2
32int
21h33
34exit:
movah,4ch
35int
21h36
code ends
37 end start
組合語言程式格式
組合語言源程式中的每個語句可以由四項組成,格式如下 name operation operand comment 其中 名字項 name 是指乙個標號或變數。操作項 operation 是乙個操作碼的助記符,它可以是指令 偽指令或巨集指令名。運算元項 operand 由乙個或多個表示式組成,它提供為...
組合語言 指令格式
記得前面提到過這個問題,幾句話就給帶過了。為什麼還要囉裡囉嗦的再說一下呢?呵呵,是這樣的,我在看一本彙編的資料時,懷疑上面的乙個語句弄錯了。想知道是不是他的彙編指令 裡包含 印刷錯誤 我想如果是印刷錯誤的話,很可能他的二進位制 跟看得懂的指令碼對不上。那麼我如何自己將那個二進位制 轉換成彙編指令碼呢...
組合語言格式舉例
使用masm 6.x版本的簡化版本定義源程式格式 eg101.asm model small 程式的儲存模型是small model,其中有乙個 段和乙個資料段,每個段不大於64kb stack 定義 段 data 定義資料段 msg db hello,assembly 13,10,資料定義 cod...