使用汇编语言编写判断数字奇偶性的程序方法
.data ; 数据段
num db 0 ; 存储一个数的变量
.code ; 指令段
main proc
mov ax,@data ; 将数据段的地址赋值给ax寄存器
mov ds,ax ; 将ax寄存器的值赋给ds寄存器
mov al,num ; 将num变量的值赋给al寄存器
cmp al,0 ; 比较al中的数是否为0,如果不是则执行下面语句,否则进入else部分
jne else ; 跳转到else处,如果al中的数不为0
mov ah,4ch ; 返回dos环境(返回dos命令)
int 21h ; 运行int 21h中断服务例程
else: ; al中的数不为0时执行此处代码
and al,1 ; 用and运算将al中原有位保留,其余位全都取0(也就是说将al中原有奇/偶性保留)
cmp al,1 ; 比较al中保留位是否为1。如果是则执行if语句内容;如果不是刚执行else语句内容。
je if ;当and之后得出来的保留位为1时就会直接跳转if处。即奇數情況。
jmp else2 ;当and之后得出来的保留位不是1时就会直接跳转else2处。即偶數情況。
if: ;奇數情況代码处理部分
mov ah ,09h ;显示字符功能函式(ah=09h)
lea dx ,oddmsg ;dx=oddmsg地址
int 21h ;运行int 21h中断服务例程
jmp end ;定义一条jmp 跳板由if 处直接剪切end 处
else2: ﹒《《《《《《《《《已上面cmp 结束之後就会剪切此处了 > > > > > > > > > 偶數情況代码处理部份 mov ah ,09h ;显⑩字⑩功能函式(ah=09h) lea dx ,evenmsg ;dx=evenmsg圖片 int 21 h ;运⑩int21 h中断末例勒 end : ret main endp
oddmsg db "This is an odd number.$"
evenmsg db "This is an even number.$"
END main
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!