奥普瓯江 发表于 2019-3-19 11:48:01

检测点14.2

本帖最后由 奥普瓯江 于 2019-3-19 11:49 编辑

编程, 用加法和移位指令计算(ax)= (ax)* 10
提示, (ax)* 10 = (ax)* 2 + (ax)* 8

assume cs:code

code segment
start:
                mov bx, 5h
                                               
                mov cl, 3h                ;向左移动3位就相当于乘与8因为移位能乘的数只有2、4、8、16 ........
                mov ax, bx
                shl ax, cl                        ;在这个命令中16位ax寄存器和8位cl寄存器是可以用在一起的
                                               
                mov cl, 1h                ;向左移动1位相当于乘2
                shl bx, cl
               
                add ax, bx
               
                mov ax, 4C00h
                int 21h
               
code ends
end start
备注:因为要乘10所以就分成2个计算公式分别是移动1位和移动3位他们分别对应的数位2和8,此方法做算法只能应用于2的倍数如果除数位11那就没有用了

Tring 发表于 2019-3-21 15:22:36

楼主,请问下现在的作业是在哪呀。我才开始学习汇编,但是视频上的论坛是几年前的,我找不到作业区了

奥普瓯江 发表于 2019-3-21 17:06:11

Tring 发表于 2019-3-21 15:22
楼主,请问下现在的作业是在哪呀。我才开始学习汇编,但是视频上的论坛是几年前的,我找不到作业区了

作业的解答在下面的图片里可以找到,如果是说作业题的话那个在书上呢就是那个王爽著的汇编语言第二版,我用的是第二版,现在有可能有第三版了吧。

Tring 发表于 2019-3-24 11:05:47

奥普瓯江 发表于 2019-3-21 17:06
作业的解答在下面的图片里可以找到,如果是说作业题的话那个在书上呢就是那个王爽著的汇编语言第二版,我 ...

哦哦,好的,谢谢了。
页: [1]
查看完整版本: 检测点14.2