1. 首页 > 科技

恳求大佬帮帮忙,用8086汇编实现下列C语言代码,要求使用移位指令实现乘法和除法运算

恳求大佬帮帮忙,用8086汇编实现下列C语言代码,要求使用移位指令实现乘法和除法运算

请汇编语言厉害的朋友帮帮忙(8088/8086指令)-高悬赏

data segment

buf dw 3 dup(?)

crlf db 13,10,'$';回车换行

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

lea si,buf

mov cx,3

m1:

mov ah,01h

int 21h

sub al,30h

mov ah,0

mov [si],ax

add si,2

loop m1

mov dx,offset crlf

mov ah,09h

int 21h

;------------------

;冒泡排序核心代码

mov cx,3

dec cx

m2:

mov di,cx

mov bx,0

m3:

mov ax,buf[bx]

cmp buf[bx+2],ax

jge cotinue

xchg ax,buf[bx+2]

mov buf[bx],ax

cotinue:

add bx,2

loop m3

mov cx,di

loop m2

;-------------------

lea si,buf

mov cx,3

m4: mov dl,[si]

add dl,30h

mov ah,02h

int 21h

add si,2

loop m4

mov ah,4ch

int 21h

code ends

end start

汇编题,求解大神,急!!

用一条语句实现从子程序返回调用程序 (RET);

用一条语句(CLI)实现不允许中断即关中断;

写出用TEST指令测试DL寄存器的第3位和第6位(TEST DL, 0100 1000B);

4.源变址寄存器SI和目的变址寄存器DI分别与(BX)和(BP)寄存器配合使用;

5.欲将数据段中首址为DEST,共50个字节单元的存储区初始化为0,

试在下面程序段的空白处填上适当的指令或操作数,以实现上述功能。

LEA DI, DEST

CLD

MOV CX,__50___

MOV AL,__0___

REP __STOSB___

6.已知

(SI)=2000H,

(BX)=1000H,

(DS)=3000H,

(33000H)=1598H,

(33002H)=1000H,

(CS)=3456H.

求下列指令执行完后IP,CS寄存器的内容。

JMP WORD PTR [BX + SI];

(IP)=(1598)H,(CS)=(1000)H

用汇编语言指令实现以下操作:

1.LEA BX,BUF

MOV SI,0

ADD AL,[BX][SI]

2.ADD [BX+100H],DX

3.ADD [0500H],3ABCH

4.MOV CX,2

LEA SI,BUF1

LEA BX,BUF2

LEA DI,BUF3

NEXT:

LODSB

ADD AL,[BX]

STOSB

INC BX

LOOP NEXT

求C语言编程!!!问题如下:

b=a%10; //个位数

c=a%100/10;//十位数

d=a%1000/100;//百位数

e=a%10000/1000;//千位数

f=a/10000;//万位数