用汇编语言编写一个程序,把X*2的值赋给Y。
assume cs:code ,ds:data
data segment
x dw ?
y dw ?
z dw ?
result dw ?
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,x
imul y ;x*y
sub ax,z ;x*y-z
sbb dx,0
idiv x ;(x*y-z)/x
mov result,ax ;保存结果
;你确定不要余数吗?如果要的话,在DX中,自己另存吧
mov ax,4c00h
int 21h
code ends
end strat
function ab($a,$b){
$x=$y=0;
if($a>$b){
$x=$a;
$y=$b;
}else{
$x=$b;
$y=$a;
}
echo 'X=$x,Y=$y';
}
X DW 10
Y DW ?,0;第二个字放进位
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
CLC;清除进位标志
MOV AX,X
ADD AX,X;完成X*2的操作,而且速度比用MUL快
MOV Y,AX
JNC NEXT
mov Y+2,1;存储进位
NEXT:
MOV AX,4C00H
INT 21H
CODE ENDS
END START
data_seg segment
x db 20 ;x可以是-128到+127的任意数
y dw ?
data_seg ends
stack_seg segment stack
db 128 dup(?)
stack_seg ends
code segment
main proc far
assume cs:code,ss:stack_seg,ds:data_seg
start:
mov ax,data_seg
mov ds,ax
sub ax,ax ;ax清零
mov al,x ;字节操作(al)*(SRC)→(ax)
mov bl,2 ;SRC=2
cmp al,0 ;判断al的正负,分别作无符号数乘和有符号数乘
jl do_1
mul bl
jmp do_2
do_1:
imul bl
do_2:
mov y,ax ;把结果送到y
mov ah,4ch
int 21h
main endp
code ends
end start
分分分啊!!还有不懂或是什么疑惑可以问我
楼主敞亮,出手大方。楼上几位的回答,你看谁的回答满意,就采纳谁的;若没有满意的,我再来回答。
建议在汇编中插入C程序 一般算法用C写比较实际
你可以把问题说详细点么?需要输入和输出不,还有X是几位数,你不说完,这程序没有办法编写的,还有你最后的结果是要显示出来还是要放在存储器里面
如何用Keil编写汇编语言程序?
1、打开Keil,新建一个51工程,同时新建一个main.c文件,并加入到工程源代码当中。2、再点击新建文件按钮,新建一个汇编语言源文件:test.asm,并将它保存到指定目录。3、在test.asm当中输入下面的代码。4、代码编写完成后,需要将test.asm加入到工程当中,即鼠标右键点击对应工程的源程序文件夹,选择“...
汇编语言程序设计的一般步骤是什么?
一般来说,编制一个汇编语言程序的步骤如下:(1) 分析题意,确定算法或算法思想。算法是指解决问题的方法和步骤。比如现有的一些计算方法和日常生活中解决问题的逻辑思维推理方法等。(2) 根据算法画出流程图,简单的情况也可不画。画出描述算法的流程图,可以首先从图上检验算法的正确性,减少出错的可...
用汇编语言设计一个程序,求10个无符号数中的最大值。并将最大值存入变 ...
MOV BX,OFFSET N ;第一个数的地址MOV AL,[BX] ;将第一个数认为是最大的NEXT:CMP AL,[BX] ;比较JA L1MOV AL,[BX] ;如果有更大的数则更新ALL1:INC BX ;指向下一个数LOOP NEXT ;循环比较MOV MAX,AL ;保存最大值到MAX hnhhww | 发布于2011-12-19 举报| 评论 6 1 爱的撒旦 lvwancheng1 ...
试用汇编语言编写一个程序,该程序的功能如下:
当BL为0,将0—255这256个数从小到大的顺序放入 当BL为1,将0—255这256个数从大到小的顺序放入 当BL为其它,将0放入以3100H为起始的单元中去 ;MOV AL, 0 MOV CX, 256 MOV DI, 3100H LP:MOV [DI], AL CMP BL, 0 JNZ ONE INC AL JMP NEXT ONE:CMP BL, 1 J...
用汇编语言编写一个小小程序
这个还不简单#include<stdio.h>void main(){ float a,b,c,s;\/*定义数据类型,数据初始化*\/s=(a*b+c)\/a;\/*计算并把计算结果赋值给s*\/printf("s=%f\\n",s);\/*输出计算结果*\/}
汇编语言:编写一个程序,显示AL寄存器中的两位十六进制数
mov bx, 2 ;bx用于循环,一个字节最多可以显示成两个字符,所以循环次数是2次 mov cl, 4 ;首先显示高4位,在下次循环进再显示低4位 shr al, clagain: and al, 0fh cmp al, 9 ja hex add al, '0' ;如果小于9,加上字符'0'将数字转换字符 jmp disphex: sub al, 10 ;如果大于9,先减去10,再加...
用8086汇编语言编写程序,接受从键盘上输入的一个两位十进制数字,这个数...
采纳率:64% 擅长: 汇编语言 其他编程语言 编程语言 工程技术科学 嵌入式 其他回答 学汇编,要用到哪些软件 zpue1234 | 发布于2012-06-01 举报| 评论(1) 0 1 为您推荐: 汇编语言程序设计pdf 汇编语言小程序100例 关于汇编语言程序 8086 汇编语言 8086汇编语言解释 8086汇编语言是什么 《汇编语言...
用汇编语言编一个程序
09H INT 21H LOOP LOOP2LABEL1: POP AX PUSH AX ; 计算第 i 行显示字符数 MOV CX, 15 SUB CX, AX INC CXLOOP3: ; 显示 * 号 MOV DX, OFFSET STAR MOV AH, 09H INT 21H LOOP LOOP3 ; 换行 MOV DX, OFFSET LINE MOV AH, 09H ...
试编写一个汇编语言程序,要求从键盘接收一个四位的16进制数,并在终端上...
start: mov bx,0 mov ch,4 mov cl,4 s0: mov ah,1 ;键盘输入4个16进制数 int 21h cmp al,39h ;判断是0~9还是A~H,若是数字减30H,否则还要减07H jbe next sub al,07h next: sub al,30h shl bx,cl add bl,al ;转换后的数据存入BX,每存一次左移4位 dec ch...
用汇编语言编写一个简单程序
1.计算U=(X+(Y*Z-100))\/W 其中:X,Y,Z,W均为十六位有符号数。程序如下:DATA SEGMENT X DW 10 ;16位变量 Y DW 20 Z DW 30 W DW 40 U DW ?,?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,Y IMUL Z ;计算Y*Z,内容放在DX...
爰伟美抒: ^对于Y=X^2 用牛顿叠代法,预设一个数X0,则有 X1=(X0+Y/X0)/2 X2=(X1+Y/X1)/2 X3=(X2+Y/X2)/2 X≈(X3+Y/X3)/2 这是取X4=X,你也可以取X5=X,X6=X等等,结果更精确.取值经验:若Y=X*X=(U)*(U)+(V)*(V) X0=U (U≥2*V) X0=(1+1/4)U (V 若Y=X*X=1-Z*Z X0=Y (Y≥1/2) X0=2Y (1/4≤YX0=3Y (1/8≤YX0=4Y (1/16≤YX0=10Y (Y 以上经验值对于三角函数计算特别有用.
凤山县15275348277: 用汇编语言编写一个程序1*1+2*2+……+10*10.急用,,会的人麻烦你帮我一下,谢谢了 - ?
爰伟美抒: assume cs:code,ds:datadata segmentOUTPUT db '1*1+2*2+......+N*N=','$'TIME dw 0AH ;0AH(十六进制) = 10(十进制) 这里可以随便调整,比如将0AH 写成 0BH;就能算1*1+2*2+......11*11的值哦TEN dw 0AHdata ends...
凤山县15275348277: 用汇编语言编写一个简单程序?
爰伟美抒: 1.计算U=(X+(Y*Z-100))/W 其中:X,Y,Z,W均为十六位有符号数. 程序如下: DATA SEGMENT X DW 10 ;16位变量 Y DW 20 Z DW 30 W DW 40 U DW ?,? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ...
凤山县15275348277: 用汇编语言编写一个程序 - ?
爰伟美抒: 如下即可:DATAS SEGMENTTIPS DB 10, 13, 'Please input a number (1~8): $'CRLF DB 10, 13, 36 DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX, DATASMOV DS, AX LOP:LEA DX, TIPSMOV...
凤山县15275348277: 用汇编编写S=(X*X+Y*Y)/2 - ?
爰伟美抒: ;用汇编编写S=(X*X+Y*Y)/2;S=[80*80+(-64)*(-64)]/2=1480H=5248d;经DEBUG调试与计算器核对,结果正确.; data segment X db 80;限X、Y均在±127以内.Y db -64; S dw ?data ends code segment assume cs:code,ds:data start: mov ax,...
凤山县15275348277: 如何编写计算y=x*x 6x 9的程序(汇编语言) - ?
爰伟美抒: 如下 mov al,x ;x放入AL lea cx,[al*6] ;6x放入CL mov bl,x mul bl ;al*bl就是x*x结果 add ax,cx ;AX+CX就是x*x+6x结果入AX add ax,9 ;ax+9就是x*x+6x+9结果入AX
凤山县15275348277: 用汇编语言编写一则程序?
爰伟美抒: MOV AH,[X] SUB AH,[y] MOV [X],AH MOV AH,[X+1] SBB AH,[Y+1] MOV [X+1],AHMOV AH,[X+2] SBB AH,[Y+2] MOV [X+2],AH 计算后,变量x的值是01FD20H 你说的应该是这个题目吧 x 10 02 05 y F0 04 03 x20 FD 01 y F0 04 03
凤山县15275348277: 用汇编语言编写:x=1,y=2,z=3,计算w=2x+3y - 4z - ?
爰伟美抒: data segment x equ 1 y equ 2 z equ 3 w dw 1 dup(0) data ends stack segment db 200 dup(?) stack ends code segment assume cs:code,ds:data;ss:stack start: mov ax,data mov ds,ax mov ax,0 mov bx,0 mov cx,0 mov ax,x mul ax,2 mov bx,y mul bx,3 ...
凤山县15275348277: 用汇编语言编写一个程序?
爰伟美抒:DATA SEGMENT; CR db 0dh,0ah,'$' SSP db 20h,'$' string1 db 'plese input the number:$' string2 db 'the number is(H):$' string3 db 'the number is(B):$' data1 dw 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,...
凤山县15275348277: 用汇编语言编写程序计算(X*Y - Z)÷X - ?
爰伟美抒: X DD ? Y DD ? Z DD ? 假设已经定义了已经赋值了MOV EAX,X MUL Y SUB EAX,Z XOR EDX,EDX DIV X 经过以上后 EAX里放了结果 汇编语言直接写可以这样 不过如果是高级语言编译后产生的,肯定不是这样,100%不是这样的如果X Y Z不是DWORD类型要先统一类型就比较麻烦了额