设内存地址单元 A,B 分别存放二字节整数原码,如何用汇编语言设计补码乘法 booth 算法实现 A 与 B 相乘,并将乘积转成原码存放在以 C 地址起始的地址单元中?

这个问题我想是把被乘数放ax,乘数放bx,设立标志位q,但是我不太懂以下几个问题
1.如何进行移位操作,比如说对bx中的数进行逻辑右移,在最高位补1。
2.循环的次数应该怎么确定,就是说怎么拿到乘数的位数?
3.在最后如何将bx和ax拼接到变量C,并把补码变原码?
求大佬帮帮忙,我真的是汇编小白,最好能有代码,我用的是masm

https://blog.csdn.net/qq_43355372/article/details/100540759