有关汇编编程的问题,求解答
1。 实现无符号双字02344652h与0f0f0f0f0相加。 mov ax,4652h mov dx,234h add ax,0f0f0h adc dx,0 add dx,0f0f0h2。 实现无符号双字02344652h与0f0f0f0f0相减。 mov ax,4652h mov dx,234h sub ax,0f0f0h sbb dx,0 sub dx,0f0f0h3。 实现无符号数0B4h与11h相乘。 ...全部
1。 实现无符号双字02344652h与0f0f0f0f0相加。 mov ax,4652h mov dx,234h add ax,0f0f0h adc dx,0 add dx,0f0f0h2。
实现无符号双字02344652h与0f0f0f0f0相减。 mov ax,4652h mov dx,234h sub ax,0f0f0h sbb dx,0 sub dx,0f0f0h3。
实现无符号数0B4h与11h相乘。 mov al,0b4h mov ah,11h mul ah4。 实现有符号数0B4h与11h相乘。 mov al,0b4h mov ah,11h imul ah5。
实现无符号数0400H除以B4H。 mov ax,400h mov cl,0b4h div cl6。 实现有符号数0400H除以B4H。
mov ax,400h mov cl,0b4h idiv cl7。 实现有符号数除法AX÷BX。 xor dx,dx idiv bx 8。
已知AX=1234H,BX=4612H,计算1234-4612的差(显示的是十进制数运算的结果)。 code segment assume cs:code a db 5 dup (?) db "$" s:push cs pop ds mov ax,1234h mov bx,4612h sub ax,bx xor dx,dx xor bx,bx s1: call divdw add cx,30h push cx inc bx or ax,ax jnz s1 mov cx,bx xor bx,bx s2: pop a[bx] inc bx loop s2 mov dx,offset a mov ah,9 int 21h mov ax,4c00h int 21h code ends end s 9。
将BL中的D0和D4清零,其余位不变。 and bl,610。 将BL中的D0和D4置1,其余位不变。 or bl,911。 将BL中的D0和D4求反,其余位不变。
mov bh,bl xor bl,0ffh and bh,6 or bl,bh12。 利用移位指令计算3×AX 7×BX,并赋值给DX,假设AX、BX都是无符号数,无进位。
mov dx,ax shl ax,1 add dx,ax mov ax,bx shl bx,1 shl bx,1 shl bx,1 sub bx,ax add dx,bx13。
将DX。AX中的32位数值左移一位。 clc rcl ax,1 rcl dx,114。 AH和AL分别存放着非压缩BCD码的两位,将其合并成为一个压缩BCD码存入AL。
and al,0fh mov cl,4 shl ah,cl and ah,0f0h or al,ah15。 比较无符号数大小,将较大的存放在ax mov ax,x cmp ax,y ja s mov ax,y s: 。
。。16。 用02H号DOS系统功能调用在显示器输出一个字符,这个字符为‘?’。 mov dl,"?" mov ah,2 int 21h17。
用09H号DOS系统功能调用在显示器输出一个字符串,这个字符串为‘I am a student’。 a db "I am a student$" mov dx,offset a mov ah,9 int 21h18。
将数据段source指示的‘Hello’字节数传送到destination指示的主存区。 push ds pop es mov si,source mov di,destination mov cx,5 rep movsb 19。
用位操作指令实现AL(无符号数)剩余10。 and al,1020。 用逻辑运算指令实现数字0~9的ASCII码与非压缩BCD码的互相转换。这个不怎么会。aaa指令不熟。21。
有一个100字节元素的远足,其首地址为array,将每个元素减1(不考虑溢出)存于远处。 mov cx,100 mov bx,offset array mov ds,seg array s: dec [bx] dec bx loop s请完整的操作并描述汇编语言程序开发的四大步骤。
这个你自己找资料吧。收起