|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 shuiyu 于 2017-12-8 11:56 编辑
小白刚学,不对的请各位大佬指正,谢谢
一、
(1)字在寄存器中的存储:一个字可以存在一个16位寄存器中,这个字的高位字节和低位字节自然就存在这个寄存器的高8位寄存器和低8位
寄存器中。
(2)关于数制的讨论:后面跟着H的为十六进制,后面跟着B的为二进制。一个字等于两个字节,一个十六进制为一个字节(计算就用计算器
就行了 )
(3)几条汇编指令:汇编指令不区分大小写!!
mov 差不多就是赋值的意思,把后面的熟赋值给前面的。
add 相当于加法,两个数相加,然后赋值到前面那个变量上
如果两个字相加,超过了一个字的容量,最前面的超出的部分会丢失。
这里的丢失,指的是进位制不能在 8 位寄存器中保存,但是 CPU 不是并真的不丢弃 这个进位值,这个问题会在后面的课程中讨论。
二、检测点2.1
(1) 写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 AX=F4A3H 解:先是十进制转化成十六进制就可以得到答案了
mov ah,31H AX=31A3H 解:化成二进制,把前面的AX也换为二进制,因为这个是高位寄存器,所以把AX的前八位换成现在的,然后
再转化为十六进制就是答案了。
mov al,23H AX=3123H 解:与上题同理,只是换低位寄存器。
add ax,ax AX=6246H 解:加法,就不用多说了吧
mov bx,826CH BX=826CH 解:简单的赋值
mov cx,ax CX=6246H 解:简单的赋值
mov ax,bx AX=826CH 解:简单的赋值
add ax,bx AX=04D8H 解:相加的到104D8,超出容量了,所以前面的1丢失,变成04D8.
mov al,bh AX=0482H 解:ax为:0000 0100 1101 1000 bx为:1000 0010 0110 1100 把bx的高位赋值给ax的低位,再转化为十六进制
mov ah,bl AX=6C82H 解:ax为:0000 0100 1000 0010 bx为:1000 0010 0110 1100 把bx的低位赋值给ax的高位,再转化为十六进制
add ah,ah AX=D882H 解:ax为:0110 1100 1000 0010 高位相加,即0110 1100+0110 1100=1101 1000,然后填上低位的八位
add al,6 AX=D888H 解:低位加6
add al,al AX=D810H 解:ax为:1101 1000 1000 1000 低位相加,即1000 1000+1000 1000=1 0001 0000,超出容量了,所以前面的
1丢失了,即低位相加得0001 0000;加上高位的八位得到答案
mov ax,cx AX=6246H 解:简单的赋值,前面得CX=6246H
(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
mov ax,2 AX=2
add ax,ax AX=4
add ax,ax AX=8
add ax,ax AX=16
谢谢小甲鱼带来的视频教程,感谢!!
本节结束,多谢览阅!
小白刚学,不对的请各位大佬指正,谢谢 |
评分
-
查看全部评分
|