01 組合語言 基本格式 模板

2022-07-28 22:30:33 字數 1891 閱讀 6481

1

;計算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中的無符號數是否為素數,如果是素數則向螢幕輸出字元p,如果是合數,向螢幕輸出c。

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