組合語言中x0時y x 20 0x5時y 10xx5時y x 50如何編寫程式

2021-09-13 18:13:37 字數 1329 閱讀 9661

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命令將兩個運算元進行邏輯與運算,並根據運算結果設定相關的標誌位...