汇编语言分支程序实例
汇编语言分支程序实例
{ 2x (x<0)
S= { 3x (0≤x≤10)
{ 4x (x>10)
代码
data segment
x dw -6,9,12 ;x单元中保存的数
s dw 3 dup(?)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov cx,3 ;3是循环次数
mov si,0
let0:
mov ax,x[si] ;取出x
cmp ax,0 ;x>=0?
jge let1 ;是,转到let1
sal ax,1 ;否,计算2*x
jmp out1 ;跳到公共出口out1
let1:
cmp ax,10 ;x>10?
jg let2 ;是,转到let2
mov bx,3
imul bx ;否,计算3*x
jmp out1 ;跳到公共出口out1
let2:
mov bl,4 ;计算4*x
imul bl
out1:
mov s[si],ax ;保存s
add si,2
dec cx ;cx-1
cmp cx,0
jnz let0 ;cx!=0 转移到let0
mov ah,4ch ;cx=0 程序结束
int 21h
code ends
end start
测试结果
在DOS下执行程序后又返回到DOS,没有显示。要想观察运行结果 ,采用DEBUG执行EXE文件。在DEBUG下,用U命令查看;找到断点0039,用“G 0039“执行;再用D命令查看结果。
显示的都是十六进制补码
前三个字单元分别为FAH, 09H,0CH 分别代表十进制的-6,9,12如果需要验证其他数,可修改X单元存储的数。
从6号单元开始存放三个结果
F4H 1BH 30H
-12 27 48
到此则宣布该实例结束