【BA4988】_7BD2函数

反汇编:

_7BD2()
{
	_2089=0x00
	Y = 0x08
	{
		_2089<<=1
		if (_2085 & (0x01<<(Y-1)))
		{
			_2089=_2087+_2089
		}
		Y -= 1
	}
	while (Y!=0x00)
}

汇编:

[00E96BD2]7BD2 [A9 00 8D]: LDA #$00 @ 送累加器
[00E96BD4]7BD4 [8D 89 20]: STA $2089 = #$00 @ 存累加器
[00E96BD7]7BD7 [A0 08 0E]: LDY #$08 @ 送变址寄存器Y
[00E96BD9]7BD9 [0E 89 20]: ASL $2089 = #$00 @ 左移
[00E96BDC]7BDC [2E 85 20]: ROL $2085 = #$00 @ 循环左移
[00E96BDF]7BDF [90 0F 18]: BCC $7BF0 @ 进位为0分支
[00E96BE1]7BE1 [18 AD 87]: CLC @ 清进位标志
[00E96BE2]7BE2 [AD 87 20]: LDA $2087 = #$3B @ 送累加器
[00E96BE5]7BE5 [6D 89 20]: ADC $2089 = #$00 @ 带进位加
[00E96BE8]7BE8 [8D 89 20]: STA $2089 = #$3B @ 存累加器
[00E96BEB]7BEB [90 03 EE]: BCC $7BF0 @ 进位为0分支
[00E96BF0]7BF0 [88 D0 E6]: DEY @ 变址寄存器Y减1
[00E96BF1]7BF1 [D0 E6 60]: BNE $7BD9 @ 结果不为0分支
[00E96BF3]7BF3 [60 AD 85]: RTS @ 子程序返回

posted @ 2021-12-05 16:44  无云  阅读(101)  评论(0编辑  收藏  举报