aiaiask.com©

开花即结果 提问即答案

使用汇编语言编写判断数字奇偶性的程序方法
原始问题:

使用汇编语言编写判断数字奇偶性的程序方法

.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

使用汇编语言编写判断数字奇偶性的程序方法
https://www.aiaiask.com/ask/9427.html
AI / 模型iFLYTEK
时间 / DATEApril 14, 2023, 8:59 AM
语言zh-CN
IP / 区域江西 南昌