1.順序結構(略)
2.分支結構
(1)設計乙個分段函式,x>0,y=1;x=0,y=0;x<0,y=-1.
.486
data segment use16
x dw ?
data ends
code segment use16
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov ax,x
or ax,ax ;自身異或操作不改變,改變的是標誌位
je zero ;如果是0的話跳轉到zero
jns plus ;如果是正數的話跳轉到plus
mov bl,0ffh;bl賦予初值-1
jmp halt ;如果是負數的話跳轉halt
zero:mov bl 0
jmp halt
plus:mov bl 1
halt: mov ah,4ch
int 21h
code ends
end start
(2)將bx暫存器的內容以二進位制的形式顯示在螢幕上。
.486
code segment use16
assume cs:code;
beg: mov bx,3456h
mov cx,16
mov al,'0'
rol bx,1 ;左移操作
jnc next ;如果是0的話,直接顯示
mov al,'1' ;非0,顯示1
next: mov ah,0eh
int 10h
loop last
mov ah,4ch
int 21h
code ends
end beg
(3)某科室9人,統計月收入在800-900間的人數,並且用十進位制表示。
.486
data segment use16
salary dw dup(?) ;如果定義為db,那麼最多工資為ffh,也就是256,顯然不符合題意
data ends
code segment use16
assunme ds:data,cs:code
begin:mov ax,data
mov ds,ax
mov bx,offset salary
mov cx,9
mov dl,0
again:mov ax,[bx]
cmp ax,800
jc next ;有進製,即小於800
cmp ax,900
ja next
inc dl ;計數加1
next: add bx,2 ;由於定義為dw型別,所以+2
loop again
add dl,30h ;由於要求十進位制顯示
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end begin
3.迴圈結構
(1)求1-10的累加和
.486
data segment use16
sum dw ?
data ends
code segment use16
assume ds:data,cs:code
start porc far
beginn:push ds
xor ax,ax
push ax ;ax為0
mov ax,data
mov ds,ax
mov cx,10
mov ax,0
again:add ac,cx
loop again
mov sum,ax
retstart endp
code ends
end begin
(2)從buf單元開始為1個ascii碼字串,找到其中最大的送到螢幕顯示 組合語言學習(三)
這部分是王爽 組合語言 第7 8章重要內容的總結。主要分為四部分 1.用組合語言實現大小寫字母的轉換 and和or指令應用 2.組合語言二重迴圈的寫法 3.資料處理的兩個基本問題 4.實驗七的思路與 實驗七基本上是對之前學習內容的乙個總結應用,比較重要。大小寫字母轉換部分幫助理解ascii碼設計的奇...
組合語言學習筆記 三
ram 允許讀寫,斷電 資料 和 指令 丟失 rom 只允許讀取,斷電 資料 和 指令 不丟失 1 cpu和計算機各個部件之間的關係 通過給各個部件進行編號,例如 0 399記憶體條 401 699顯示卡 2 ram 允許讀寫,斷電 資料 和 指令 丟失 3 rom 只允許讀取,斷電 資料 和 指令...
組合語言學習
參考書籍 組合語言 王爽 著 清華大學出版社 選單導航 一 彙編基礎知識 二 暫存器和常見彙編指令演示 一 基礎知識 1 彙編指令是機器指令的助記符,同機器指令一一對應 2 每一種cpu都有自己的彙編指令集 3 cpu可以直接使用的資訊在儲存器中存放 4 在儲存器中指令和資料沒有任何區別,都是二進位...