汇编语言问题?
写出完成下列功能的程序段:1、将AL中的两位BCD码分离,分别存放DL和DH中。2、将DL中的4位二进制数转换成16进制数的ASCII码。3、将AL中的8位二进制数高4位...
写出完成下列功能的程序段:
1、将AL中的两位BCD码分离,分别存放DL和DH中。
2、将DL中的4位二进制数转换成16进制数的ASCII码。
3、将AL中的8位二进制数高4位和低4位交换。
4、将AL中的8位有符号数转换成它的绝对值。
5、用串扫描指令在一个字符串中查找字符'*'。
6、将输入的大写字母改变成小写输出。
7、输入一个字母,然后输出它的后续字母。
能再详细点吗?最好说下相关的指令,我再追加赏分就是了 展开
1、将AL中的两位BCD码分离,分别存放DL和DH中。
2、将DL中的4位二进制数转换成16进制数的ASCII码。
3、将AL中的8位二进制数高4位和低4位交换。
4、将AL中的8位有符号数转换成它的绝对值。
5、用串扫描指令在一个字符串中查找字符'*'。
6、将输入的大写字母改变成小写输出。
7、输入一个字母,然后输出它的后续字母。
能再详细点吗?最好说下相关的指令,我再追加赏分就是了 展开
2个回答
展开全部
1.mov dl, al
and dl, 0fh
mov dh, al
shr dh, 4
and dh, 0fh
2. and dl, 0fh;这句是去除dl无用的高4位
add dl, 20h;+32就是字符了
3. mov bl, al
shr al, 4
and al, 0fh;这些可能不需要,不知道移位后是否用0填充就加上
shl bl, 4
or bl, f0h;同上
or al, bl
4
5
6
7
后面的你自己写吧.我这里非计算机专业的,没学过X86结构和汇编的人,都能写一点,,相信你自己也可以.
不会自己翻看一下指令集就好了
and dl, 0fh
mov dh, al
shr dh, 4
and dh, 0fh
2. and dl, 0fh;这句是去除dl无用的高4位
add dl, 20h;+32就是字符了
3. mov bl, al
shr al, 4
and al, 0fh;这些可能不需要,不知道移位后是否用0填充就加上
shl bl, 4
or bl, f0h;同上
or al, bl
4
5
6
7
后面的你自己写吧.我这里非计算机专业的,没学过X86结构和汇编的人,都能写一点,,相信你自己也可以.
不会自己翻看一下指令集就好了
展开全部
虽然不难,但是这么多问题才给20分也太小气了吧,只给你几个提示好了。
1、AL是8位的,可以通过与运算分别取出其高四位、低四位。
2、你只要知道ASCII码与数之间有什么区别就知道怎么做了。
3、从1中的方法,既然能分离高低四位,自然交换也不是什么难事。
4、首先判断其是正数还是负数,如果是正数就不用变了,如果是负数,则利用取补指令就可得出其绝对值。
5、太简单,很多书上讲到串扫描指令时都会举例
6、很简单,看看ASCII码表上,大小写字符之间差多少,对大写字母加上差值就得出相应的小写字母。
7、比6还简单,不过注意这里是后续字母,比如C后面就是D,但是Z后面应该是什么呢?自己想
1、AL是8位的,可以通过与运算分别取出其高四位、低四位。
2、你只要知道ASCII码与数之间有什么区别就知道怎么做了。
3、从1中的方法,既然能分离高低四位,自然交换也不是什么难事。
4、首先判断其是正数还是负数,如果是正数就不用变了,如果是负数,则利用取补指令就可得出其绝对值。
5、太简单,很多书上讲到串扫描指令时都会举例
6、很简单,看看ASCII码表上,大小写字符之间差多少,对大写字母加上差值就得出相应的小写字母。
7、比6还简单,不过注意这里是后续字母,比如C后面就是D,但是Z后面应该是什么呢?自己想
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询