编写完整的汇编程序,判断字类型变量X的值(用xxxx表示)是偶数还是奇数。若是偶数,将字节类型变量?

编写完整的汇编程序,判断字类型变量X的值(用xxxx表示)是偶数还是奇数。若是偶数,将字节类型变量?,第1张

可以使用以下汇编程序来实现这个需求:

判断字类型变量 X 是偶数还猜腔是奇数

如果是偶数,将字节类型变量 BUF 置为 0

否则置为 1

定义变量 X 和 BUF

X:      dw      xxxx

BUF:    db      0

开始执行程序

main:

将 X 寄存器中

mov     ax, [X]

将 X 取模 2

div     word ptr 2

判断余数是否为 0

cmp     穗乎衫ah, 0

如果余数为 0,说明是偶数,将 BUF 置为 0

jz      even

否则,说明是奇数,将 BUF 置为 1

mov     byte ptr [BUF], 1

跳转到结束位置

jmp     end

even:

将 BUF 置为 0

mov     byte ptr [BUF], 0

end:

程序结束

ret

在上面的程序中,我们使用了 DIV 指令来将 X 取模 2,并使用 AH 寄存器来保存余数。如果余数为 0,说明 X 是偶数;如果余数不为 0,说明 X是奇数。

在上面的程序中,我们使用了 CMP 指令来比较 AH 寄存器的值是否为 0,如果是,就跳转到 even 标签处;否则,就跳转到 end 标签处。

在 even 标签处,我们使用了 MOV 指令来将 BUF 置为 0。在 end 标签处,我们使用了 RET 指令来结束程序。

这样,我们就编写了一个汇编程序,用来判断字类型变量 X 是偶数顷行还是奇数,并将字节类型变量 BUF 置为 0 或 1。

CODE SEGMENT ASSUME CS:CODE START: MOV AH,1h从岩洞尺猛键盘输入一个数 INT 21H AND AL,1H看看AL中最后一位是不是1 是1为奇数粗困枯 0为偶数 ADD AL,'0'因为得到的是0或1因为得加上字符O的ASC码值 MOV DL,AL放心DL调用6号中断显示 MOV AH,6 INT 21H MOV AH,4CH INT 21H CODE ENDS END START

AL里面放要判断的数,测试最末一位是否是1。如果是0,则说明是偶数,跳转的处理偶数的程序段;如果是1,则说明是奇数。

在汇编语言中,用助记符代替机器指令的 *** 作瞎中差码,用地址符号或标号代替指令或 *** 作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。

扩展资料:

汇编语言用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减,“ MOV”代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。

但计算机的硬件不认识字母符号,这时候就需要一个专培扒门的程序把这些字符变成计算机能够识别的二进制数。

因为汇编语言只是将机器语言做了简单编译,所以并没有根本上解决机器语言的特定性,所以汇编语言和机器自身的编程环境息息相关,推广和移植很难,但是还磨皮是保持了机器语言优秀的执行效率,因为他的可阅读性和简便性,汇编语言到现在依然是常用的编程语言之一。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12402963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存