1樓:
;本程式經masm5.0除錯通過....
data segment
tip db 'program run successfully',0ah,0dh,'$'
x dw 1234h
y dw ?
data ends
code segment
assume cs:code,ds:datastart:mov ax,data
mov ds,ax;把資料段地址送給ds
xor ax,ax
cmp word ptr x,0h
jge a001
add x,20
mov dx,x
mov y,dx
jmp exit
a001:cmp x,5
jg a002
mov ax,x
mov bx,10
mul bl
mov y,ax
jmp exit
a002:sub x,50
mov dx,x
mov y,dx
exit:
mov dx,offset tip;提示程式執行成功!
mov ah,09h
int 21h
mov ah,00h ;暫停
int 16h
mov ah,4ch ;結束,返回dosint 21h
code ends
end start
2樓:
xor ax,ax
mov al,x
cmp al,0
jb l0
cmp al,5
ja g5
mul byte ptr 10
jmp rlt
l0: add ax,20
jmp rlt
g5: sub ax,50
rlt: mov y,ax
3樓:殘濤驚夢
cmp x,0 ;
jb fist ;
cmp x,5 ;
ja second ;
mov eax,x ;
mul 10 ;
mov y,eax ;
fist: add x,20 ;
mov y,x ;
jmp next ;
second: sub x,50 ;
mov y,x ;
jmp next ;
next:
組合語言中的push的用法,組合語言中的PUSH的用法
push的操作過程是 sp sp 2,sp oprd 即先修改堆疊指標sp 壓入時為自動減2 然後,將指定 的運算元送入新的棧頂位置。此處的 sp oprd,也可以理解為 ss 16 sp oprd 或 ss sp oprd 示例 push dx push bp push cs push data1...
組合語言資料段問題,組合語言中定義的資料段的問題
如果1000h只是偏移地址,段地址由系統指定,可用下面方法 data segment org 1000h 用來指定下面資料或指令的偏移地址從該值開始 db 38h,4ah,2bh,80h,64h,0a7h,0bbh,9ch,83h,0f6h data ends 如果1000h是實體地址,則要先把它轉...
組合語言中test的用法,彙編中的TEST指令
test對兩個引數 目標,源 執行and邏輯操作,並根據結果設定標誌暫存器,結果本身不會儲存。test ax,bx 與 and ax,bx 命令有相同效果,只是test指令不改變ax和bx的內容,而and指令會把結果儲存到ax中。test命令將兩個運算元進行邏輯與運算,並根據運算結果設定相關的標誌位...